(command.CommandList
  children: [
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: {($ Id.VSub_Hyphen -) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName BASH_VERSION)}
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <x> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                  <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [
                    {<Id.Lit_Colon ':'>}
                    {<bash>}
                    {<set>}
                    {<-x>}
                    {<is>}
                    {<broken>}
                    {<Id.Lit_Colon ':'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<Id.Lit_Other '+'> <ex>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'command='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'command='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
          op: assign_op.Equal
          rhs: {<iffe>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'version='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'version='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'version='> name:version)
          op: assign_op.Equal
          rhs: {<2012-07-17>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <compile>
      name: compile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.Left_DoubleQuote '"'>
              more_env: []
              words: [{(DQ ($ Id.VSub_At '@'))}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {($ Id.VSub_DollarName tmp) <.err>}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_compile_status='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_compile_status='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_compile_status='>
                      name: _compile_status
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-s>} {($ Id.VSub_DollarName tmp) <.err>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>} {($ Id.VSub_DollarName tmp) <.err>}]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _compile_status)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_LBracket '['>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<1> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<12> <Id.Lit_LBracket '['> <0-7> <Id.Lit_RBracket ']'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <egrep>
                                          more_env: []
                                          words: [
                                            {<egrep>}
                                            {<-i>}
                                            {<-c>}
                                            {
                                              (SQ 
                                                <
'terminated with signal|core dump|segmentation fault'
                                                >
                                              )
                                            }
                                            {($ Id.VSub_DollarName tmp) <.err>}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName nullout)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_compile_status='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_compile_status='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_compile_status='>
                                              name: _compile_status
                                            )
                                          op: assign_op.Equal
                                          rhs: {<139>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [209 228]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [155 165]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _compile_status)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_QMark '?'>}
                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                        {<1> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>}
                        {<12> <Id.Lit_LBracket '['> <0-8> <Id.Lit_RBracket ']'>}
                        {<25> <Id.Lit_QMark '?'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_At '@'))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName stderr)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>} {($ Id.VSub_DollarName tmp) <.err>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName stderr)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_Number 1) 
                            <': core dump or fatal interruption -- results inconclusive'>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName stderr)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName _compile_status)}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName _compile_status)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <is_hdr>
      name: is_hdr
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike '_is_hdr_flag='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike '_is_hdr_flag='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike '_is_hdr_flag='>
                                  name: _is_hdr_flag
                                )
                              op: assign_op.Equal
                              rhs: {<->}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_is_hdr_flag='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_is_hdr_flag='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_is_hdr_flag='>
                              name: _is_hdr_flag
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.c>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike '_is_hdr_file='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike '_is_hdr_file='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike '_is_hdr_file='>
                                  name: _is_hdr_file
                                )
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 1)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_is_hdr_file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_is_hdr_file='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_is_hdr_file='>
                              name: _is_hdr_file
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName tmp) <.c>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <is>
              more_env: []
              words: [{<is>} {<hdr>} {($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <compile>
              more_env: []
              words: [
                {<compile>}
                {($ Id.VSub_DollarName cc)}
                {<-c>}
                {($ Id.VSub_DollarName _is_hdr_file)}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_LessAnd '<&'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {($ Id.VSub_DollarName nullin)}
                )
                (Redir
                  op: <Id.Redir_GreatAnd '>&'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName nullout)}
                )
                (Redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {($ Id.VSub_DollarName tmp) <.e>}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_is_hdr_status='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_is_hdr_status='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_is_hdr_status='> name:_is_hdr_status)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _is_hdr_status)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-s>} {($ Id.VSub_DollarName tmp) <.e>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [
                                              {<grep>}
                                              {(SQ <'#.*error'>)}
                                              {($ Id.VSub_DollarName tmp) <.e>}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_is_hdr_status='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_is_hdr_status='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_is_hdr_status='>
                                              name: _is_hdr_status
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [445 455]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _is_hdr_status)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <success>
                      more_env: []
                      words: [{<success>} {($ Id.VSub_DollarName _is_hdr_flag)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <3>
                          pattern: (pat.Words words:[{<3>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <cat>
                              more_env: []
                              words: [{<cat>} {($ Id.VSub_DollarName tmp) <.e>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <failure>
                      more_env: []
                      words: [{<failure>} {($ Id.VSub_DollarName _is_hdr_flag)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName _is_hdr_status)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <pkg>
      name: pkg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pth='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pth='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <getconf>
                                    more_env: []
                                    words: [{<getconf>} {<PATH>}]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName pth)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pth='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pth='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'/bin /usr/bin'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pth='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pth='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName pth))}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s/:/ /g'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ <'<'>)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <X>
                  pattern: (pat.Words words:[{<X>} {<X11> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: {(DQ <openwin>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <X>
                          pattern: (pat.Words words:[{<X>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<X11>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <X11>
                          pattern: (pat.Words words:[{<X11>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {($ Id.VSub_Number 1)} {<6>} {<5>} {<4>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pth='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pth='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'{ usr . - . contrib local '> ($ Id.VSub_DollarName i) 
                        <' - . share - . lib - '> ($ Id.VSub_Number 1)
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <'>'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pth='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pth='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName pth) <' '> (${ Id.VSub_Name i) <R> 
                                ($ Id.VSub_Number 1) <' '> (${ Id.VSub_Name i) <.> ($ Id.VSub_Number 1)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pth='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pth='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName pth) <' . } '> ($ Id.VSub_Star '*'))}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <is>
      name: is
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName complete)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <failure>
                              more_env: []
                              words: [{<failure>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oo='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oo='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oo='> name:oo)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'yy='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'yy='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yy='> name:yy)
                                  op: assign_op.Equal
                                  rhs: {<is>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ii='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ii='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ii='> name:ii)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'complete='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'complete='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'complete='>
                                      name: complete
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName oo)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <cmd>
                                  pattern: (pat.Words words:[{<cmd>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a command'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <dat>
                                  pattern: (pat.Words words:[{<dat>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a library data symbol'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <dfn>
                                  pattern: (pat.Words words:[{<dfn>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a macro with extractable value'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <exp>
                                  pattern: (pat.Words words:[{<exp>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <true>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <hdr>
                                  pattern: (pat.Words words:[{<hdr>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a header'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <id>
                                  pattern: (pat.Words words:[{<id>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'an identifier'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <lcl>
                                  pattern: (pat.Words words:[{<lcl>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a native header'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <key>
                                  pattern: (pat.Words words:[{<key>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a reserved keyword'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <lib>
                                  pattern: (pat.Words words:[{<lib>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a library function'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <LIB>
                                  pattern: (pat.Words words:[{<LIB>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'mm='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'mm='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'mm='>
                                                      name: mm
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <'a library'>)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'ii='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'ii='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'ii='>
                                                          name: ii
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_Star '*')}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'mm='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'mm='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'mm='>
                                                      name: mm
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <'a library group'>)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <mac>
                                  pattern: (pat.Words words:[{<mac>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a macro'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <mem>
                                  pattern: (pat.Words words:[{<mem>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a member of '> ($ Id.VSub_Number 2))}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <mth>
                                  pattern: (pat.Words words:[{<mth>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a math library symbol'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <nos>
                                  pattern: (pat.Words words:[{<nos>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a non-opaque struct'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <npt>
                                  pattern: (pat.Words words:[{<npt>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a symbol that needs a prototype'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <num>
                                  pattern: (pat.Words words:[{<num>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a numeric constant or enum'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <nxt>
                                  pattern: (pat.Words words:[{<nxt>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'an include path for the native header'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <opt>
                                  pattern: (pat.Words words:[{<opt>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'set in '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                  ch: '$'
                                                ) <PACKAGE_OPTIONS>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <pth>
                                  pattern: (pat.Words words:[{<pth>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a file'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <run>
                                  pattern: (pat.Words words:[{<run>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'yy='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'yy='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yy='> name:yy)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'capture output of'>)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <siz>
                                  pattern: (pat.Words words:[{<siz>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a type with known size'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <sym>
                                  pattern: (pat.Words words:[{<sym>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a typed variable'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <sys>
                                  pattern: (pat.Words words:[{<sys>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a system header'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <typ>
                                  pattern: (pat.Words words:[{<typ>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'a type or typedef'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <val>
                                  pattern: (pat.Words words:[{<val>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'yy='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'yy='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yy='> name:yy)
                                          op: assign_op.Equal
                                          rhs: {(DQ <determine>)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <value>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'yy='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'yy='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yy='> name:yy)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ii)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <abcdefghijklmnopqrstuvwxyz> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <abcdefghijklmnopqrstuvwxyz> <Id.Lit_RBracket ']'> (SQ <'{'>)
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ii='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ii='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ii='> name:ii)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName ii) <' ... }end'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {(DQ ($ Id.VSub_DollarName command) <': test:'>)}
                                {($ Id.VSub_DollarName yy)}
                                {($ Id.VSub_DollarName ii)}
                                {($ Id.VSub_DollarName mm)}
                                {(DQ <...> ($ Id.VSub_DollarName SHOW))}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'complete='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'complete='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'complete='>
                                      name: complete
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <success>
      name: success
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName result)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <UNKNOWN>
                          pattern: (pat.Words words:[{<UNKNOWN>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'result='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'result='> name:result)
                                  op: assign_op.Equal
                                  rhs: {<SUCCESS>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Other '+'>
                          pattern: (pat.Words words:[{<Id.Lit_Other '+'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {($ Id.VSub_DollarName complete) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName verbose)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'> <1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName suspended)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'suspended='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'suspended='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'suspended='>
                                      name: suspended
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {(DQ ($ Id.VSub_DollarName command) <': test:'>)}
                                {($ Id.VSub_DollarName yy)}
                                {($ Id.VSub_DollarName ii)}
                                {($ Id.VSub_DollarName mm)}
                                {(DQ <...> ($ Id.VSub_DollarName SHOW))}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'complete='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'complete='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'complete='> name:complete)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {(DQ <yes>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'\''> ($ Id.VSub_Star '*') <'\''>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <' '> ($ Id.VSub_DollarName mm))}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': ... '> 
                                    ($ Id.VSub_DollarName mm)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <failure>
      name: failure
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'result='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'result='> name:result)
                          op: assign_op.Equal
                          rhs: {<FAILURE>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Other '+'>
                          pattern: (pat.Words words:[{<Id.Lit_Other '+'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {($ Id.VSub_DollarName complete) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName verbose)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'> <1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName suspended)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'suspended='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'suspended='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'suspended='>
                                      name: suspended
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {(DQ ($ Id.VSub_DollarName command) <': test:'>)}
                                {($ Id.VSub_DollarName yy)}
                                {($ Id.VSub_DollarName ii)}
                                {($ Id.VSub_DollarName mm)}
                                {(DQ <...> ($ Id.VSub_DollarName SHOW))}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'complete='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'complete='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'complete='> name:complete)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {(DQ <no>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Star '*')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <' '> ($ Id.VSub_DollarName mm))}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': ... '> 
                                    ($ Id.VSub_DollarName mm)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <report>
      name: report
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_report_ignore='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_report_ignore='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_report_ignore='>
                              name: _report_ignore
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_report_ignore='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_report_ignore='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_report_ignore='>
                              name: _report_ignore
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_report_not='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_report_not='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_report_not='> name:_report_not)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName not)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-0>
                  pattern: (pat.Words words:[{<-0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-1>
                  pattern: (pat.Words words:[{<-1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName def)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )} {<->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _report_not)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_report_not='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_report_not='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_report_not='>
                                              name: _report_not
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_report_not='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_report_not='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_report_not='>
                                              name: _report_not
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_report_status='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_report_status='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_report_status='> name:_report_status)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {($ Id.VSub_DollarName _report_ignore) <Id.Lit_Colon ':'> 
                      ($ Id.VSub_DollarName _report_status)
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<-> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <success>
                      more_env: []
                      words: [{<success>} {($ Id.VSub_DollarName _report_ignore)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <failure>
                      more_env: []
                      words: [{<failure>} {($ Id.VSub_DollarName _report_ignore)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_report_value='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_report_value='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_report_value='> name:_report_value)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _report_not)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _report_status)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_report_status='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_report_status='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_report_status='>
                                      name: _report_status
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_report_status='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_report_status='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_report_status='>
                                      name: _report_status
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_report_success='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_report_success='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_report_success='>
                              name: _report_success
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 4)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_report_failure='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_report_failure='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_report_failure='>
                              name: _report_failure
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 3)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_report_success='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_report_success='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_report_success='>
                              name: _report_success
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 3)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_report_failure='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_report_failure='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_report_failure='>
                              name: _report_failure
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 4)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_report_default='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_report_default='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_report_default='>
                      name: _report_default
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 5)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _report_status)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName M)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'usr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'usr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usr='> name:usr)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName usr) ($ Id.VSub_DollarName nl) 
                                        <'#define '> ($ Id.VSub_DollarName m) <' '> ($ Id.VSub_DollarName _report_value)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _report_success)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )} {<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName define)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'#define '> ($ Id.VSub_DollarName m) <'\t'> 
                                                    ($ Id.VSub_DollarName _report_value) <'\t/* '> ($ Id.VSub_DollarName _report_success) <' */'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <n>
                                          pattern: (pat.Words words:[{<n>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName m) <'='> 
                                                    ($ Id.VSub_DollarName _report_value)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {($ Id.VSub_DollarName m) <Id.Lit_Equals '='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\''>
                                    ch: '\''
                                  ) ($ Id.VSub_DollarName _report_value) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\''>
                                    ch: '\''
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName M)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _report_failure)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )} {<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName define) ($ Id.VSub_DollarName all) 
                                              ($ Id.VSub_DollarName config) ($ Id.VSub_DollarName undef)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<1> <Id.Lit_QMark '?'> <1> <Id.Lit_QMark '?'>}
                                                {<1> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <1>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'#undef\t'> ($ Id.VSub_DollarName m) <'\t\t/* '> 
                                                    ($ Id.VSub_DollarName _report_failure) <' */'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <11>
                                          pattern: 
                                            (pat.Words
                                              words: [{<11> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'#define '> ($ Id.VSub_DollarName m) 
                                                    <'\t0\t/* '> ($ Id.VSub_DollarName _report_failure) <' */'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <n1>
                                          pattern: (pat.Words words:[{<n1> <Id.Lit_QMark '?'> <1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName m) <'='>)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <n1>
                                          pattern: 
                                            (pat.Words
                                              words: [{<n1> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName m) <'=0'>)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _report_default)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )} {<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName define) ($ Id.VSub_DollarName set)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: 
                                            (pat.Words
                                              words: [{<1> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'#define '> ($ Id.VSub_DollarName v) <'\t'> 
                                                    ($ Id.VSub_DollarName set) <'\t/* '> ($ Id.VSub_DollarName _report_default) <' */'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <n>
                                          pattern: 
                                            (pat.Words
                                              words: [{<n> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName v) <'='> 
                                                    ($ Id.VSub_DollarName set)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [{<eval>} {($ Id.VSub_DollarName m) <Id.Lit_Equals '='> <0>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <noisy>
      name: noisy
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {($ Id.VSub_DollarName complete) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName verbose)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'> <1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'suspended='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'suspended='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suspended='> name:suspended)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName stderr)}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'here_broken='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'here_broken='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'here_broken='> name:here_broken)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <literal>
      name: literal
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DLess '<<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: 
                                (redir_param.HereDoc
                                  here_begin: {<Id.KW_Bang '!'>}
                                  here_end_tok: <Id.Undefined_Tok ''>
                                  stdin_parts: [($ Id.VSub_Star '*') <'\n'>]
                                )
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>} {<old>} {<here>} {<doc>} {<botch>} {<not>} {<present>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2481 2493]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Case
                  case_kw: <Id.KW_Case case>
                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName here_broken)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <0>
                      pattern: (pat.Words words:[{<0>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'here_broken='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'here_broken='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'here_broken='>
                                  name: here_broken
                                )
                              op: assign_op.Equal
                              rhs: {<1>}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ ($ Id.VSub_DollarName command) 
                                <
': your shell botches here documents; this was fixed back in the 80\'s'
                                >
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName stderr)}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sh>
                  more_env: []
                  words: [{<sh>} {<-c>} {(DQ <'cat <<!\n'> ($ Id.VSub_Star '*') <'\n'> <'!\n'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <copy>
      name: copy
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <ksh>
                          pattern: (pat.Words words:[{<ksh>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [{<print>} {<-r>} {<->} {(DQ ($ Id.VSub_Number 2))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_DLess '<<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: 
                                                (redir_param.HereDoc
                                                  here_begin: {<Id.KW_Bang '!'>}
                                                  here_end_tok: <Id.Undefined_Tok ''>
                                                  stdin_parts: [($ Id.VSub_Number 2) <'\n'>]
                                                )
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_Colon ':'>}
                                        {<ancient>}
                                        {<here>}
                                        {<doc>}
                                        {<botch>}
                                        {<not>}
                                        {<present>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [2607 2619]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName here_broken)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <0>
                                      pattern: (pat.Words words:[{<0>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'here_broken='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'here_broken='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'here_broken='>
                                                  name: here_broken
                                                )
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ ($ Id.VSub_DollarName command) 
                                                <
': your shell botches here documents; this was fixed back in the 80\'s'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName stderr)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <sh>
                                  more_env: []
                                  words: [
                                    {<sh>}
                                    {<-c>}
                                    {(DQ <'cat <<!\n'> ($ Id.VSub_Number 2) <'\n'> <'!\n'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <ksh>
                          pattern: (pat.Words words:[{<ksh>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [{<print>} {<-r>} {<->} {(DQ ($ Id.VSub_Number 2))}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_Number 1))}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_Number 1))}
                                            )
                                            (Redir
                                              op: <Id.Redir_DLess '<<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: 
                                                (redir_param.HereDoc
                                                  here_begin: {<Id.KW_Bang '!'>}
                                                  here_end_tok: <Id.Undefined_Tok ''>
                                                  stdin_parts: [($ Id.VSub_Number 2) <'\n'>]
                                                )
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_Colon ':'>}
                                        {<ancient>}
                                        {<here>}
                                        {<doc>}
                                        {<botch>}
                                        {<not>}
                                        {<present>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [2729 2747]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName here_broken)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <0>
                                      pattern: (pat.Words words:[{<0>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'here_broken='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'here_broken='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'here_broken='>
                                                  name: here_broken
                                                )
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ ($ Id.VSub_DollarName command) 
                                                <
': your shell botches here documents; this was fixed back in the 80\'s'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName stderr)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <sh>
                                  more_env: []
                                  words: [
                                    {<sh>}
                                    {<-c>}
                                    {
                                      (DQ <'cat > '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' <<!\n'> 
                                        ($ Id.VSub_Number 2) <'\n'> <'!\n'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <checkcc>
      name: checkcc
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName PACKAGE_PATH)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName PACKAGE_PATH)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s,:, ,g'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName i) <'/include'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cc='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cc='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName cc) <' -I'> 
                                                ($ Id.VSub_DollarName i) <'/include'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'occ='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'occ='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'occ='>
                                              name: occ
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName occ) <' -I'> 
                                                ($ Id.VSub_DollarName i) <'/include'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2882 2892]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-d>} {($ Id.VSub_DollarName i) <'/lib'>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cc='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cc='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName cc) <' -L'> 
                                                ($ Id.VSub_DollarName i) <'/lib'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'occ='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'occ='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'occ='>
                                              name: occ
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName occ) <' -L'> 
                                                ($ Id.VSub_DollarName i) <'/lib'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [y]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName libpaths)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {($ Id.VSub_DollarName y) <Id.Lit_Equals '='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') ($ Id.VSub_DollarName y) 
                                                  <Id.Lit_Colon ':'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'i/lib'> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\$'>
                                                    ch: '$'
                                                  ) (${ Id.VSub_Name y) <_default> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [{<eval>} {<export>} {($ Id.VSub_DollarName y)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [2915 2925]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'int i = 1;'>)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                )
              ]
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <compile>
                          more_env: []
                          words: [
                            {<compile>}
                            {($ Id.VSub_DollarName cc)}
                            {<-c>}
                            {($ Id.VSub_DollarName tmp) <.c>}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_LessAnd '<&'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName nullin)}
                            )
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName nullout)}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'(;'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <compile>
                                  more_env: []
                                  words: [
                                    {<compile>}
                                    {($ Id.VSub_DollarName cc)}
                                    {<-c>}
                                    {($ Id.VSub_DollarName tmp) <.c>}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_LessAnd '<&'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {($ Id.VSub_DollarName nullin)}
                                    )
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName nullout)}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cctest='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cctest='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cctest='> name:cctest)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'should not compile \'(;\''>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3040 3058]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [3008 3026]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cctest='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cctest='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cctest='> name:cctest)
                      op: assign_op.Equal
                      rhs: {(DQ <'should compile \'int i = 1;\''>)}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cctest)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cctest='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cctest='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cctest='> name:cctest)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName cc) 
                            <': not a C compiler: '> ($ Id.VSub_DollarName cctest)
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName stderr)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <checkread>
      name: checkread
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cctest)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <checkcc>
                      more_env: []
                      words: [{<checkcc>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName posix_read)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-no>
                  pattern: (pat.Words words:[{<-no>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'posix_read='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'posix_read='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'posix_read='> name:posix_read)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Subshell
                                    left: <Id.Op_LParen _>
                                    child: 
                                      (command.CommandList
                                        children: [
                                          (command.Sentence
                                            child: 
                                              (command.Simple
                                                blame_tok: <read>
                                                more_env: []
                                                words: [{<read>} {<-r>} {<_checkread_line>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            terminator: <Id.Op_Semi _>
                                          )
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName _checkread_line)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                      )
                                    right: <Id.Right_Subshell _>
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                      (Redir
                                        op: <Id.Redir_DLess '<<'>
                                        loc: (redir_loc.Fd fd:0)
                                        arg: 
                                          (redir_param.HereDoc
                                            here_begin: {<Id.KW_Bang '!'>}
                                            here_end_tok: <Id.Undefined_Tok ''>
                                            stdin_parts: [<'a z\n'>]
                                          )
                                      )
                                    ]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName posix_read)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ <'a z'>)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'posix_read='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'posix_read='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'posix_read='> name:posix_read)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <copy>
                      more_env: []
                      words: [
                        {<copy>}
                        {(${ Id.VSub_Name tmp) <r.c>}
                        {
                          (DQ <'\n'> <'\t\textern int read();\n'> <'\t\textern int write();\n'> 
                            <'\t\tint main()\n'> <'\t\t{\n'> <'\t\t\tchar\tc;\n'> <'\t\t\tchar\tr;\n'> <'\t\t\tint\tk;\n'> <'\t\t\tchar\ts[32];\n'> 
                            <'\t\t\tk = 0;\n'> <'\t\t\twhile (read(0, &c, 1) == 1)\n'> <'\t\t\t{\n'> <'\t\t\t\tif (k >= 0)\n'> <'\t\t\t\t{\n'> 
                            <'\t\t\t\t\tif (c == \' \' || c == \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'t\')\n'> <'\t\t\t\t\t{\n'> 
                            <'\t\t\t\t\t\tif (k < sizeof(s))\n'> <'\t\t\t\t\t\t\ts[k++] = c;\n'> <'\t\t\t\t\t\tcontinue;\n'> <'\t\t\t\t\t}\n'> 
                            <'\t\t\t\t\tif (k > 1 && c != \'#\' && c != \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'n\' && c != \''> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) <'r\')\n'> <'\t\t\t\t\t\twrite(1, s + 1, k - 1);\n'> <'\t\t\t\t\tk = -1;\n'> <'\t\t\t\t}\n'> 
                            <'\t\t\t\tif (c == \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'r\')\n'> <'\t\t\t\t{\n'> 
                            <'\t\t\t\t\tr = c;\n'> <'\t\t\t\t\tif (read(0, &c, 1) == 1 && c != \''> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) <'n\')\n'> <'\t\t\t\t\t\twrite(1, &r, 1);\n'> <'\t\t\t\t}\n'> <'\t\t\t\twrite(1, &c, 1);\n'> 
                            <'\t\t\t\tif (c == \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'n\')\n'> 
                            <'\t\t\t\t\treturn 0;\n'> <'\t\t\t}\n'> <'\t\t\treturn 1;\n'> <'\t\t}'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <compile>
                                  more_env: []
                                  words: [
                                    {<compile>}
                                    {($ Id.VSub_DollarName cc)}
                                    {<-o>}
                                    {(${ Id.VSub_Name tmp) <r.exe>}
                                    {(${ Id.VSub_Name tmp) <r.c>}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName nullout)}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'posix_read='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'posix_read='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'posix_read='>
                                      name: posix_read
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name tmp) <r.exe>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3288 3310]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ ($ Id.VSub_DollarName command) 
                                <': cannot compile read -r workaround'>
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName stderr)}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <execute>
      name: execute
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'noteout='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'noteout='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'noteout='> name:noteout)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName nullout)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'noteout='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'noteout='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'noteout='> name:noteout)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName stderr)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {(DQ )}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName cross))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <crossexec>
                      more_env: []
                      words: [{<crossexec>} {($ Id.VSub_DollarName cross)} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '9>&'>
                          loc: (redir_loc.Fd fd:9)
                          arg: {($ Id.VSub_DollarName noteout)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_execute_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_execute_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_execute_='> name:_execute_)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3383 3398]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {<'/NextDeveloper'>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Left_DoubleQuote '"'>
                      more_env: []
                      words: [{(DQ ($ Id.VSub_At '@'))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_LessAnd '<&'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {($ Id.VSub_DollarName nullin)}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName nullout)}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '9>&'>
                          loc: (redir_loc.Fd fd:9)
                          arg: {($ Id.VSub_DollarName noteout)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_execute_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_execute_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_execute_='> name:_execute_)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                        )
                      ]
                      redirects: []
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <Id.Left_DoubleQuote '"'>
                          more_env: []
                          words: [{(DQ ($ Id.VSub_At '@'))}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_LessAnd '<&'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName nullin)}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                  ]
                  spids: [3416 3425]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <Id.Left_DoubleQuote '"'>
                  more_env: []
                  words: [{(DQ ($ Id.VSub_At '@'))}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_GreatAnd '9>&'>
                      loc: (redir_loc.Fd fd:9)
                      arg: {($ Id.VSub_DollarName noteout)}
                    )
                  ]
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike '_execute_='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike '_execute_='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_execute_='> name:_execute_)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '?')}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName _execute_)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <exclude>
      name: exclude
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName excludes)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_exclude_var]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike '_exclude_old='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) ($ Id.VSub_DollarName _exclude_var)
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _exclude_old)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> (DQ <' -I'>) <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_exclude_new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_exclude_new='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_exclude_new='>
                              name: _exclude_new
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_exclude_sep='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_exclude_sep='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_exclude_sep='>
                              name: _exclude_sep
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [_exclude_arg]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _exclude_old)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_exclude_skip='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_exclude_skip='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_exclude_skip='>
                                      name: _exclude_skip
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [_exclude_dir]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName excludes)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _exclude_arg)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <-I>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<-I> ($ Id.VSub_DollarName _exclude_dir)}
                                                {<-I> <Id.Lit_Star '*'> <'/'> 
                                                  ($ Id.VSub_DollarName _exclude_dir)
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '_exclude_skip='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '_exclude_skip='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '_exclude_skip='>
                                                      name: _exclude_skip
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Break break>
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _exclude_skip)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_exclude_new='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_exclude_new='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_exclude_new='>
                                              name: _exclude_new
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName _exclude_new) 
                                                ($ Id.VSub_DollarName _exclude_sep) ($ Id.VSub_DollarName _exclude_arg)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_exclude_sep='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_exclude_sep='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_exclude_sep='>
                                              name: _exclude_sep
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <' '>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {($ Id.VSub_DollarName _exclude_var) <Id.Lit_Equals '='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <_exclude_new>
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {<exclude>}
                                {($ Id.VSub_DollarName _exclude_var) <Id.Lit_Colon ':'>}
                                {
                                  (DQ ($ Id.VSub_DollarName _exclude_old) <' => '> 
                                    ($ Id.VSub_DollarName _exclude_new)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'all='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'all='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'all='> name:all)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'apis='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'apis='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'apis='> name:apis)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'binding='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'binding='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'binding='> name:binding)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'-dy -dn -Bdynamic -Bstatic -Wl,-ashared -Wl,-aarchive -call_shared -non_shared \'\' -static'
                >
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'complete='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'complete='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'complete='> name:complete)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'config='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'config='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'config='> name:config)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'defhdr='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'defhdr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'defhdr='> name:defhdr)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'define='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'define='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'define='> name:define)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'explicit='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'explicit='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'explicit='> name:explicit)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'iff='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'iff='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iff='> name:iff)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'usr='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'usr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usr='> name:usr)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'cross='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'cross='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cross='> name:cross)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'debug='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'debug='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug='> name:debug)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'deflib='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'deflib='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deflib='> name:deflib)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'dir='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'dir='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
          op: assign_op.Equal
          rhs: {<FEATURE>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'excludes='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'excludes='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'excludes='> name:excludes)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'executable='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'executable='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'executable='> name:executable)
          op: assign_op.Equal
          rhs: {(DQ <'test -x'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exists='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exists='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exists='> name:exists)
          op: assign_op.Equal
          rhs: {(DQ <'test -e'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'gothdr='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'gothdr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gothdr='> name:gothdr)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'gotlib='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'gotlib='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gotlib='> name:gotlib)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'idno='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'idno='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'idno='> name:idno)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'idyes='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'idyes='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'idyes='> name:idyes)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ifs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ifs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifs='> name:ifs)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name IFS>
                var_name: IFS
                suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{(SQ <'\n'> <'\t '>)})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'in='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'in='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'in='> name:in)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'includes='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'includes='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'includes='> name:includes)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'intrinsic='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'intrinsic='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'intrinsic='> name:intrinsic)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'libpaths='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'libpaths='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libpaths='> name:libpaths)
          op: assign_op.Equal
          rhs: {(DQ <'LD_LIBRARY_PATH LD_LIBRARYN32_PATH LD_LIBRARY64_PATH LIBPATH SHLIB_PATH'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_LIBRARY_PATH_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_LIBRARY_PATH_default='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'LD_LIBRARY_PATH_default='>
              name: LD_LIBRARY_PATH_default
            )
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'> <'/lib'> <Id.Lit_Colon ':'> <'/usr/lib'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_LIBRARYN32_PATH_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_LIBRARYN32_PATH_default='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'LD_LIBRARYN32_PATH_default='>
              name: LD_LIBRARYN32_PATH_default
            )
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'> <'/lib32'> <Id.Lit_Colon ':'> <'/usr/lib32'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_LIBRARY64_PATH_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_LIBRARY64_PATH_default='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'LD_LIBRARY64_PATH_default='>
              name: LD_LIBRARY64_PATH_default
            )
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'> <'/lib64'> <Id.Lit_Colon ':'> <'/usr/lib64'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LIBPATH_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LIBPATH_default='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_default='> name:LIBPATH_default)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'> <'/lib'> <Id.Lit_Colon ':'> <'/usr/lib'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SHLIB_PATH_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SHLIB_PATH_default='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHLIB_PATH_default='> name:SHLIB_PATH_default)
          op: assign_op.Equal
          rhs: 
            {<Id.Lit_Colon ':'> <'/shlib'> <Id.Lit_Colon ':'> <'/usr/shlib'> <Id.Lit_Colon ':'> <'/lib'> 
              <Id.Lit_Colon ':'> <'/usr/lib'>
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'nl='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'nl='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl)
          op: assign_op.Equal
          rhs: {(DQ <'\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'optimize='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'optimize='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'optimize='> name:optimize)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'occ='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'occ='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'occ='> name:occ)
          op: assign_op.Equal
          rhs: {<cc>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'one='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'one='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'one='> name:one)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'out='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'out='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'out='> name:out)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'posix_read='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'posix_read='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'posix_read='> name:posix_read)
          op: assign_op.Equal
          rhs: {<-check>}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Subshell
                    left: <Id.Op_LParen _>
                    child: 
                      (command.AndOr
                        children: [
                          (command.Simple
                            blame_tok: <set>
                            more_env: []
                            words: [{<set>} {<-f>}]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <set>
                            more_env: []
                            words: [{<set>} {<x>} {<Id.Lit_Star '*'>}]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {($ Id.VSub_Pound '#')}]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <set>
                            more_env: []
                            words: [{<set>} {<Id.Lit_Other '+'> <f>}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                      )
                    right: <Id.Right_Subshell _>
                    redirects: [
                      (Redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <2>
          pattern: (pat.Words words:[{<2>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'posix_noglob='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'posix_noglob='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'posix_noglob='> name:posix_noglob)
                  op: assign_op.Equal
                  rhs: {(DQ <'set -f'>)}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'posix_glob='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'posix_glob='> name:posix_glob)
                  op: assign_op.Equal
                  rhs: {(DQ <'set +f'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Subshell
                            left: <Id.Op_LParen _>
                            child: 
                              (command.AndOr
                                children: [
                                  (command.Simple
                                    blame_tok: <set>
                                    more_env: []
                                    words: [{<set>} {<-F>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <set>
                                    more_env: []
                                    words: [{<set>} {<x>} {<Id.Lit_Star '*'>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {($ Id.VSub_Pound '#')}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <set>
                                    more_env: []
                                    words: [{<set>} {<Id.Lit_Other '+'> <F>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                              )
                            right: <Id.Right_Subshell _>
                            redirects: [
                              (Redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <2>
                  pattern: (pat.Words words:[{<2>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'posix_noglob='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'posix_noglob='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'posix_noglob='>
                              name: posix_noglob
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'set -F'>)}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'posix_glob='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'posix_glob='> name:posix_glob)
                          op: assign_op.Equal
                          rhs: {(DQ <'set +F'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'posix_noglob='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'posix_noglob='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'posix_noglob='>
                              name: posix_noglob
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <':'>)}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'posix_glob='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'posix_glob='> name:posix_glob)
                          op: assign_op.Equal
                          rhs: {(DQ <':'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'protoflags='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'protoflags='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'protoflags='> name:protoflags)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'puthdr='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'puthdr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'puthdr='> name:puthdr)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'putlib='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'putlib='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'putlib='> name:putlib)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'pragma='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'pragma='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pragma='> name:pragma)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName RANDOM)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.VSub_DollarName '$RANDOM'>
          pattern: (pat.Words words:[{($ Id.VSub_DollarName RANDOM)}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'shell='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'shell='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'shell='> name:shell)
                  op: assign_op.Equal
                  rhs: {<bsh>}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$executable'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName executable)} {<.>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'executable='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'executable='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'executable='> name:executable)
                      op: assign_op.Equal
                      rhs: {(SQ <'test -r'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$exists'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName exists)} {<.>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'exists='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'exists='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exists='> name:exists)
                      op: assign_op.Equal
                      rhs: {(SQ <'test -r'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName BASH_VERSION)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'shell='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'shell='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'shell='> name:shell)
                          op: assign_op.Equal
                          rhs: {<bash>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'shell='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'shell='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'shell='> name:shell)
                          op: assign_op.Equal
                          rhs: {<ksh>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'reallystatic='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'reallystatic='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reallystatic='> name:reallystatic)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'reallystatictest='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'reallystatictest='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reallystatictest='> name:reallystatictest)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'regress='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'regress='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'regress='> name:regress)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'static='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'static='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'static='> name:static)
          op: assign_op.Equal
          rhs: {<.>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'statictest='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'statictest='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'statictest='> name:statictest)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName COTEMP)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Left_DoubleQuote '"'>
          pattern: (pat.Words words:[{(DQ )}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTNAME)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: 
                    (pat.Words
                      words: [
                        {(DQ )}
                        {<Id.Lit_QMark '?'>}
                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'tmp='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'tmp='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name HOSTNAME)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <bsh>
                          pattern: (pat.Words words:[{<bsh>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName HOSTNAME)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [{<sed>} {(SQ <'s/\\(....\\).*/tmp=\\1/'>)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [{<eval>} {(SQ <'tmp=${HOSTNAME%${HOSTNAME#????}}'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tmp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name tmp) ($ Id.VSub_Dollar '$')}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tmp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp)
                  op: assign_op.Equal
                  rhs: {<x> (${ Id.VSub_Name COTEMP)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'COTEMP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'COTEMP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COTEMP='> name:COTEMP)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name tmp)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<COTEMP>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName tmp)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <'./'>
          pattern: (pat.Words words:[{<'./'> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_QMark '?'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                  <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <bsh>
                  pattern: (pat.Words words:[{<bsh>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {($ Id.VSub_DollarName tmp)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [{<sed>} {(SQ <'s/\\(.........\\).*/tmp=\\1/'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {(SQ <'tmp=${tmp%${tmp#?????????}}'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_QMark '?'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_QMark '?'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tmp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp)
                  op: assign_op.Equal
                  rhs: {<F> ($ Id.VSub_DollarName tmp)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName tmp)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <'./'>
          pattern: (pat.Words words:[{<'./'> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tmp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp)
                  op: assign_op.Equal
                  rhs: {<'./'> ($ Id.VSub_DollarName tmp)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'undef='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'undef='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'undef='> name:undef)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'verbose='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'verbose='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'vers='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'vers='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vers='> name:vers)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <->
          pattern: (pat.Words words:[{<->}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'out='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'out='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'out='> name:out)
                      op: assign_op.Equal
                      rhs: {<->}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'set='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'set='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Subshell
                    left: <Id.Op_LParen _>
                    child: 
                      (command.CommandList
                        children: [
                          (command.Sentence
                            child: 
                              (command.Simple
                                blame_tok: <getopts>
                                more_env: []
                                words: [{<getopts>} {(SQ <'[-][123:xyz]'>)} {<opt>} {<--xyz>}]
                                redirects: []
                                do_fork: T
                              )
                            terminator: <Id.Op_Semi _>
                          )
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {<0> ($ Id.VSub_DollarName opt)}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                      )
                    right: <Id.Right_Subshell _>
                    redirects: [
                      (Redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <0123>
          pattern: (pat.Words words:[{<0123>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'USAGE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'USAGE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[-?\n'>
                          <Id.Char_Literals '@(#)$Id: iffe (AT&T Research) 2012-07-17 $\n'>
                          <Id.Char_Literals ']\n'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName USAGE_LICENSE) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'[+NAME?iffe - C compilation environment feature probe]\n'
                          >
                          <Id.Char_Literals '[+DESCRIPTION?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is a command interpreter that probes the C\n'>
                          <Id.Char_Literals 
'\tcompilation environment for features. A feature is any file, option\n'
                          >
                          <Id.Char_Literals 
'\tor symbol that controls or is controlled by the C compiler. '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'\ttests features by generating and compiling C programs and observing\n'
                          >
                          <Id.Char_Literals 
'\tthe behavior of the C compiler and generated programs.]\n'
                          >
                          <Id.Char_Literals '[+?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' statements are line oriented. Statements may appear in the\n'
                          >
                          <Id.Char_Literals '\toperand list with the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ':'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' operand or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals newline>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' as the line\n'>
                          <Id.Char_Literals 
'\tdelimiter. The standard input is read if there are no command\n'
                          >
                          <Id.Char_Literals '\tline statements or if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is omitted.]\n'>
                          <Id.Char_Literals '[+?Though similar in concept to '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals autoconf>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), there\n'>
                          <Id.Char_Literals 
'\tare fundamental differences. The latter tend to generate global\n'
                          >
                          <Id.Char_Literals 
'\theaders accessed by all components in a package, whereas '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals 
'\taimed at localized, self contained feature testing.]\n'
                          >
                          <Id.Char_Literals '[+?Output is generated in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'FEATURE/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' by default, where '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '\tthe base name of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals run>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'\tfile operand. Output is first generated in a temporary file; the\n'
                          >
                          <Id.Char_Literals 
'\toutput file is updated if it does not exist or if the temporary file\n'
                          >
                          <Id.Char_Literals '\tis different. If the first operand is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' then the output is written\n'>
                          <Id.Char_Literals 
'\tto the standard output and no update checks are done.]\n'
                          >
                          <Id.Char_Literals '[+?Files with suffixes '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .iff>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are assumed to contain\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' statements.]\n'>
                          <Id.Char_Literals '[a:all?Define failed test macros '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 0>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. By default only successful test macros\n'>
                          <Id.Char_Literals '\tare defined '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals 
'[c:cc?Sets the C compiler name and flags to be used in the feature\n'
                          >
                          <Id.Char_Literals '\ttests.]:[C-compiler-name [C-compiler-flags ...]]]\n'>
                          <Id.Char_Literals '[C:config?Generate '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) style '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals HAVE_>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '* macro names. This implies\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --undef>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Since '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) has inconsistent naming conventions,\n'>
                          <Id.Char_Literals '\tthe '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals exp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' op may be needed to translate from the (consistent)\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' names. Unless otherwise noted a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name\n'>
                          <Id.Char_Literals '\tis the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name prefixed with '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals HAVE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and converted to\n'>
                          <Id.Char_Literals '\tupper case. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is set by default if the command arguments\n'>
                          <Id.Char_Literals '\tcontain a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals run>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' op on an input file with the base name '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '[d:debug?Sets the debug level. Level 0 inhibits most\n'>
                          <Id.Char_Literals 
'\terror messages, level 1 shows compiler messages, and\n'
                          >
                          <Id.Char_Literals '\tlevel 2 traces internal '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) actions and does\n'>
                          <Id.Char_Literals '\tnot remove core dumps on exit.]#[level]\n'>
                          <Id.Char_Literals 
'[D:define?Successful test macro definitions are emitted. This is the default.]\n'
                          >
                          <Id.Char_Literals '[E:explicit?Disable implicit test output.]\n'>
                          <Id.Char_Literals '[F:features?Sets the feature test header to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals hdr>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.  This header typically\n'>
                          <Id.Char_Literals 
'        defines *_SOURCE feature test macros.]:[hdr:=NONE]\n'
                          >
                          <Id.Char_Literals '[i:input?Sets the input file name to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', which\n'>
                          <Id.Char_Literals '\tmust contain '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' statements.]:[file]\n'>
                          <Id.Char_Literals '[I:include?Adds '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -I>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' to the C compiler flags.]:[dir]\n'>
                          <Id.Char_Literals '[L:library?Adds '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -L>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' to the C compiler flags.]:[dir]\n'>
                          <Id.Char_Literals '[n:name-value?Output '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' assignments only.]\n'>
                          <Id.Char_Literals '[N!:optimize?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --nooptimize>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' disables compiler optimization options.]\n'>
                          <Id.Char_Literals '[o:output?Sets the output file name to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]:[file]\n'>
                          <Id.Char_Literals '[O:stdio?Sets the standard io header to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals hdr>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]:[hdr:=stdio.h]\n'>
                          <Id.Char_Literals '[e:package?Sets the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) package name to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]:[name]\n'>
                          <Id.Char_Literals '[p:prototyped?Emits '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#pragma prototyped'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' at the top of the\n'>
                          <Id.Char_Literals '\toutput file. See '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1).]\n'>
                          <Id.Char_Literals '[P:pragma?Emits '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#pragma'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' at the top of the output file.]:[text]\n'>
                          <Id.Char_Literals '[r:regress?Massage output for regression testing.]\n'>
                          <Id.Char_Literals '[s:shell?Sets the internal shell name to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. Used for debugging\n'>
                          <Id.Char_Literals '\tBourne shell compatibility (otherwise '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' uses '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ksh>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' constructs\n'>
                          <Id.Char_Literals '\tif available). The supported names are '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ksh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals bsh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals bash>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', and\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals osh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals osh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' forces the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'read -r'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' compatibility read command to\n'>
                          <Id.Char_Literals '\tbe compiled and used instead of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'read -r'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The default is determined\n'>
                          <Id.Char_Literals '\tby probing the shell at startup.]:[name]\n'>
                          <Id.Char_Literals 
'[S:static?Sets the C compiler flags that force static linking. If not set\n'
                          >
                          <Id.Char_Literals '\tthen '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' probes the compiler to determine the flags. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'\tmust use static linking (no dlls) because on some systems missing\n'
                          >
                          <Id.Char_Literals 
'\tlibrary symbols are only detected when referenced at runtime from\n'
                          >
                          <Id.Char_Literals '\tdynamically linked executables.]:[flags]\n'>
                          <Id.Char_Literals '[u:undef?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#undef'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' failed test macros. By default only successful test macros\n'
                          >
                          <Id.Char_Literals '\tare defined '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals 
'[v:verbose?Produce a message line on the standard error for each test as\n'
                          >
                          <Id.Char_Literals '\tit is performed.]\n'>
                          <Id.Char_Literals '[x:cross?Some tests compile an executable ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals a.out>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ') and then run it.\n'>
                          <Id.Char_Literals 
'\tIf the C compiler is a cross compiler and the executable format is\n'
                          >
                          <Id.Char_Literals 
'\tincompatible with the execution environment then the generated\n'
                          >
                          <Id.Char_Literals 
'\texecutables must be run in a different environment, possibly on\n'
                          >
                          <Id.Char_Literals '\tanother host. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals crosstype>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is the HOSTTYPE for generated executables\n'>
                          <Id.Char_Literals '\t(the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
'(1) command generates a consistent HOSTTYPE namespace).\n'
                          >
                          <Id.Char_Literals '\tGenerated executables are run via '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals crossexec>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) with '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals crosstype>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\tas the first argument. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals crossexec>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' supports remote execution for\n'>
                          <Id.Char_Literals '\tcross-compiled executables. See '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals crossexec>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) for\n'>
                          <Id.Char_Literals '\tdetails.]:[crosstype]\n'>
                          <Id.Char_Literals '[X:exclude?Removes '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -I>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -I>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '*/'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' C compiler flags.]:[dir]\n'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[ - ] [ file.iffe | statement [ : statement ... ] ]\n'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[+SYNTAX?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' input consists of a sequence of statement lines. Statements\n'
                          >
                          <Id.Char_Literals '\tthat span more than one line contain '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals begin>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' as the last\n'>
                          <Id.Char_Literals '\toperand (where '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals begin>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is command specific) and zero\n'>
                          <Id.Char_Literals '\tor more data lines terminated by a line containing\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}end'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' as the first operand. The statement syntax is:\n'>
                          <Id.Char_Literals '\t['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ']] ['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '!'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ']] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '[,'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '...]] ['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ']]\n'>
                          <Id.Char_Literals '\t['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '[,'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '...]]]] ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals prereq>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...]]\n'>
                          <Id.Char_Literals '\t['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals begin>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '{ ... |'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals end>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ...]] [= ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals default>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]]].\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 's and '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 's may be combined, separated by commas, to perform\n'>
                          <Id.Char_Literals '\ta set of tests on a set of arguments. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' before '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'\toverrides the default test variable and macro name, and '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' after\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 
' performs the test but does not define the test variable and\n'
                          >
                          <Id.Char_Literals '\tmacro values. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '!'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' before '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' inverts the test sense for '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals if>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ',\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals elif>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'yes{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'no{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' blocks.]\n'>
                          <Id.Char_Literals '[+?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals prereq>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 
's are used when applying the features tests and may be\n'
                          >
                          <Id.Char_Literals '\tcombinations of:]{\n'>
                          <Id.Char_Literals '\t\t[+compiler options?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -D>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '*, '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -L>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '*, etc.]\n'>
                          <Id.Char_Literals '\t\t[+library references?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -l>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '*, *'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .a>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', etc. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _LIB_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t\tis defined to be 1 if '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -l>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a library.]\n'>
                          <Id.Char_Literals '\t\t[+header references?*'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .h>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals _dir_name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is defined to be 1\n'>
                          <Id.Char_Literals '\t\t\tif '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'dir/name'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .h>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is a header, or if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '\t\t\tomitted, '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _hdr_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is defined to be 1 if\n'>
                          <Id.Char_Literals '\t\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .h>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is a header.]\n'>
                          <Id.Char_Literals 
'\t\t[+-?Prereq grouping mark; prereqs before the first '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are\n'>
                          <Id.Char_Literals '\t\t\tpassed to all feature tests. Subsequent groups\n'>
                          <Id.Char_Literals 
'\t\t\tare attempted in left-to-right order until the first\n'
                          >
                          <Id.Char_Literals '\t\t\tsuccessful group is found.]\n'>
                          <Id.Char_Literals '\t}\n'>
                          <Id.Char_Literals '[+?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals begin>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}end'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' delimit multiline code blocks that override\n'>
                          <Id.Char_Literals '\tor augment the default code provided by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. User supplied code\n'>
                          <Id.Char_Literals 
'\tblocks should be compatible with the K&R, ANSI, and C++ C language\n'
                          >
                          <Id.Char_Literals 
'\tdialects for maximal portability. Test code may call the function\n'
                          >
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'NOTE("...")'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to emit short text in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --verbose>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' output; only one\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'NOTE()'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' should be called per test for readability. In addition to\n'
                          >
                          <Id.Char_Literals 
'\tall macro definitions generated by previous tests, all generated\n'
                          >
                          <Id.Char_Literals 
'\tcode contains the following at the top to hide dialect differences:]{\n'
                          >
                          <Id.Char_Literals 
'\t\t[+ ?#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)]\n'
                          >
                          <Id.Char_Literals '\t\t[+ ?#define _STD_ 1]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _ARG_(x) x]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _VOID_ void]\n'>
                          <Id.Char_Literals '\t\t[+ ?#else]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _STD_ 0]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _ARG_(x) ()]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _VOID_ char]\n'>
                          <Id.Char_Literals '\t\t[+ ?#endif]\n'>
                          <Id.Char_Literals '\t\t[+ ?#if defined(__cplusplus)]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _BEGIN_EXTERNS_ extern "C" {]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _END_EXTERNS_ }]\n'>
                          <Id.Char_Literals '\t\t[+ ?#else]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _BEGIN_EXTERNS_]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _END_EXTERNS_]\n'>
                          <Id.Char_Literals '\t\t[+ ?#endif]\n'>
                          <Id.Char_Literals '\t\t[+ ?#define _NIL_(x) ((x)0)]\n'>
                          <Id.Char_Literals '\t\t[+ ?#include <stdio.h>]\n'>
                          <Id.Char_Literals '\t}\n'>
                          <Id.Char_Literals '[+?= '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals default>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be specified for the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals key>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals lib>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals mac>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals mth>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\tand '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals typ>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' tests. If the test fails for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' then\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#define'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals default>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is emitted. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals key>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' accepts multiple\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '= '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals default>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' values; the first valid one is used.]\n'>
                          <Id.Char_Literals 
'[+?Each test statement generates a portion of a C language header that contains\n'
                          >
                          <Id.Char_Literals 
'\tmacro defintions, comments, and other text corresponding to the feature\n'
                          >
                          <Id.Char_Literals '\ttests. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#ifndef _def_'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#endif'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' guards the generated header from multiple '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 's,\n'>
                          <Id.Char_Literals '\twhere '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is determined by either the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals run>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' statement input file\n'>
                          <Id.Char_Literals '\tname if any, or the first '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' in the first statement, and '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\tis the basename component of either the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals run>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' statement file, if any,\n'>
                          <Id.Char_Literals 
'\tor the current working directory. The output file name is determined\n'
                          >
                          <Id.Char_Literals '\tin this order:]{\n'>
                          <Id.Char_Literals '\t\t[+-?If the first command line operand is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' then the output\n'>
                          <Id.Char_Literals '\t\t\tis written to the standard output.]\n'>
                          <Id.Char_Literals '\t\t[+--output='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Output is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t\t[+set out '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Output is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t\t[+[run]] ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '/]]'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals base>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals .suffix>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]?Output is\n'>
                          <Id.Char_Literals '\t\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'FEATURE/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals base>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t}\n'>
                          <Id.Char_Literals '[+?Generated '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' headers are often referenced in C source as:\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include "FEATURE/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '". The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) base rules contain\n'>
                          <Id.Char_Literals '\tmetarules for generating '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'FEATURE/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' from\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'features/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals suffix>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']], where '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals suffix>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be omitted,\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .c>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' (see the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals run>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' test below). Because\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' prerequisites are automatically detected, '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)\n'>
                          <Id.Char_Literals '\tensures that all prerequisite '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' headers are generated before\n'>
                          <Id.Char_Literals 
'\tcompilation. Note that the directories are deliberately named\n'
                          >
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals FEATURE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals features>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to keep case-ignorant file systems\n'>
                          <Id.Char_Literals '\thappy.]\n'>
                          <Id.Char_Literals '[+?The feature tests are:]{\n'>
                          <Id.Char_Literals '\t[+# '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals comment>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Comment line - ignored.]\n'>
                          <Id.Char_Literals '\t[+api '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYYMMDD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'symbol ...'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Emit api compatibility tests\n'>
                          <Id.Char_Literals '\t\tfor '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#define'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals symbol>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals symbol>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYYMMDD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\twhen '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '_API is >= '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYYMMDD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tconverted to upper case). If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '_API is not defined\n'>
                          <Id.Char_Literals '\t\tthen '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals symbol>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' maps to the newest '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYYMMDD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+define '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ ('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'arg,...'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ') ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Emit a macro\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#define'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if it is not already defined. The\n'>
                          <Id.Char_Literals '\t\tdefinition is passed to subsequent tests.]\n'>
                          <Id.Char_Literals '\t[+extern '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals type>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ ('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'arg,...'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ') | ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dimension>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']] ]]?Emit\n'>
                          <Id.Char_Literals '\t\tan '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals extern>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' prototype for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if one is not already\n'>
                          <Id.Char_Literals 
'\t\tdefined. The prototype is passed to subsequent tests.]\n'
                          >
                          <Id.Char_Literals '\t[+header '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Emit '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include <'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\texists. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is passed to subsequent tests.]\n'>
                          <Id.Char_Literals '\t[+print '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Copy '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' to the output file. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is passed\n'>
                          <Id.Char_Literals '\t\tto subsequent tests.]\n'>
                          <Id.Char_Literals '\t[+reference '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' exists then add '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' to subsequent tests.]\n'>
                          <Id.Char_Literals '\t[+ver '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYYMMDD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#define'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '_VERSION '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYYMMDD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' converted to upper case).]\n'>
                          <Id.Char_Literals '\t[+cmd '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _cmd_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is an executable\n'>
                          <Id.Char_Literals '\t\tin one of the standard system directories ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '/bin, /etc,\n'>
                          <Id.Char_Literals '\t\t/usr/bin, /usr/etc, /usr/ucb'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ').\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is defined for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tin which '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is found (with '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' translated to '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ').]\n'>
                          <Id.Char_Literals '\t[+dat '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _dat_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a data symbol\n'>
                          <Id.Char_Literals '\t\tin the default libraries.]\n'>
                          <Id.Char_Literals '\t[+def '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Equivalent to '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'cmd,dat,hdr,key,lib,mth,sys,typ'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+dfn '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a macro in the candidate headers then\n'>
                          <Id.Char_Literals '\t\ta '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#define'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' statment is output for the\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' defined in the headers. The definition is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#ifndef'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tguarded.]\n'>
                          <Id.Char_Literals '\t[+exp '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals expression>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals expression>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a '>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_Literals ...>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_Literals ' string\n'>
                          <Id.Char_Literals '\t\tthen '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is defined to be the string, else if the\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals expr>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) evaluation of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals expression>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is not 0 then '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tis defined to be 1, otherwise '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is defined to be 0.\n'>
                          <Id.Char_Literals '\t\tIdentifiers in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals expression>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be previously defined names\n'>
                          <Id.Char_Literals '\t\tfrom other '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' tests; undefined names evaluate to 0.\n'>
                          <Id.Char_Literals '\t\tIf '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' was defined in a previous successful test then\n'>
                          <Id.Char_Literals '\t\tthe current and subsequent '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals exp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' test on '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' are\n'>
                          <Id.Char_Literals '\t\tskipped. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' then the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals expression>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '\t\tsimply evaluated.]\n'>
                          <Id.Char_Literals '\t[+hdr '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _hdr_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if the header\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '<'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.h>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' exists. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name is\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals HAVE_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _H>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals statement>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... | '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals elif>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals statement>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... | '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals else>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' | '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals endif>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '?\n'>
                          <Id.Char_Literals '\t\tNested if-else test control.]\n'>
                          <Id.Char_Literals '\t[+iff '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?The generated header '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#ifndef-#endif'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro guard is\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _H>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+inc '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ re ]]?Read #define macro names from '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tand arrange for those names to evaluate to 1 in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals exp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\texpressions. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals re>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is specified then macros not matching\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals re>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' are ignored.]\n'>
                          <Id.Char_Literals '\t[+key '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _key_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a reserved\n'>
                          <Id.Char_Literals '\t\tword (keyword).]\n'>
                          <Id.Char_Literals '\t[+lcl '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Generates a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' statement for the native version\n'>
                          <Id.Char_Literals '\t\tof the header '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '<'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.h>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' if it exists. Defines\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _lcl_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' on success. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name is\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals HAVE_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _H>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The default '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals re>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '^HAVE_'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tfor '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '^_'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' otherwise.]\n'>
                          <Id.Char_Literals '\t[+lib '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _lib_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is an external\n'>
                          <Id.Char_Literals '\t\tsymbol in the default libraries.]\n'>
                          <Id.Char_Literals '\t[+mac '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _mac_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a macro.]\n'>
                          <Id.Char_Literals '\t[+mem '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals struct.member>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _mem_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals member>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals struct>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tif '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals member>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a member of the structure '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals struct>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+mth '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _mth_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is an external\n'>
                          <Id.Char_Literals '\t\tsymbol in the math library.]\n'>
                          <Id.Char_Literals '\t[+nop '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?If this is the first test then '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be used\n'>
                          <Id.Char_Literals 
'\t\tto name the output file and/or the output header guard macro.\n'
                          >
                          <Id.Char_Literals '\t\tOtherwise this test is ignored.]\n'>
                          <Id.Char_Literals '\t[+npt '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _npt_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' symbol\n'>
                          <Id.Char_Literals '\t\trequires a prototype. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name is\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals HAVE_>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _DECL>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' with the opposite sense.]\n'>
                          <Id.Char_Literals '\t[+num '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _num_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a numeric\n'>
                          <Id.Char_Literals '\t\tconstant '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals enum>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals macro>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+nxt '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines a string macro '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _nxt_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' suitable for\n'>
                          <Id.Char_Literals '\t\ta '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' statement to include the next (on the include\n'>
                          <Id.Char_Literals '\t\tpath) or native version of the header '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '<'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.h>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tif it exists. Also defines the '>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_Literals ...>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_Literals ' form\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _nxt_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _str>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name is\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals HAVE_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _NEXT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+one '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...?Generates a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#include'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' statement for the first\n'>
                          <Id.Char_Literals '\t\theader found in the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals header>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' list.]\n'>
                          <Id.Char_Literals '\t[+opt '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _opt_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a space-separated\n'>
                          <Id.Char_Literals '\t\ttoken in the global environment variable '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals PACKAGE_OPTIONS>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+pth '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... | { '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals g1>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' - ... - '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals gn>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' } | < '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pkg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ver>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...]] > ]]?Defines\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _pth_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', with embedded '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' chars translated to\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', to the path of the first instance of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' in the\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dir>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' directories. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' forms a directory list\n'>
                          <Id.Char_Literals '\t\tfrom the cross-product of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' separated directory groups\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals g1>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals gn>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. < ... > forms a directory list for the\n'>
                          <Id.Char_Literals '\t\tpackage '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pkg>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' with optional versions. If no operands are\n'>
                          <Id.Char_Literals 
'\t\tspecified then the default PATH directories are used. The\n'
                          >
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _PATH>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+run '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Runs the tests in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' based on the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tsuffix:]{\n'>
                          <Id.Char_Literals '\t\t[+.c?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is compiled and executed and the output is copied\n'>
                          <Id.Char_Literals '\t\t\tto the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' output file. Macros and headers supplied\n'>
                          <Id.Char_Literals '\t\t\tto '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'begin{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}end'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are also supplied to\n'>
                          <Id.Char_Literals '\t\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t\t[+.sh?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is executed as a shell script and the output is\n'>
                          <Id.Char_Literals '\t\t\tcopied to the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' output file.]\n'>
                          <Id.Char_Literals '\t\t[+.iffe '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'or no suffix?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' contains '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t\tstatements.]\n'>
                          <Id.Char_Literals '\t}\n'>
                          <Id.Char_Literals '\t[+set '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'option value'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Sets option values. The options are described\n'>
                          <Id.Char_Literals '\t\tabove.]\n'>
                          <Id.Char_Literals '\t[+siz '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _siz_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' to be '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sizeof>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ') if\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a type in any of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '<sys/types.h>, <times.h>,\n'>
                          <Id.Char_Literals '\t\t<stddef.h>, <stdlib.h>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Any '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' characters in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' are\n'>
                          <Id.Char_Literals 
'\t\ttranslated to space before testing and are translated to '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\tin the output macro name.]\n'>
                          <Id.Char_Literals '\t[+sym '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _ary_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is an array,\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _fun_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a function pointer,\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _ptr_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a pointer, or\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _reg_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a scalar. In most cases\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is part of a macro expansion.]\n'>
                          <Id.Char_Literals '\t[+sys '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _sys_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if the header\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '<sys/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.h>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' exists. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' macro name is\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals HAVE_SYS_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NAME>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _H>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+tst '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?A user defined test on name. A source block must be\n'>
                          <Id.Char_Literals '\t\tsupplied. Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' on success. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'tst - ...'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '\t\ttreated as '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'tst - - ...'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+typ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Defines '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _typ_>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is a type in any\n'>
                          <Id.Char_Literals '\t\tof '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '<sys/types.h>, <times.h>, <stddef.h>, <stdlib.h>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Any\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' characters in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' are translated to space before\n'>
                          <Id.Char_Literals '\t\ttesting and are translated to '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' in the output macro name.]\n'>
                          <Id.Char_Literals '\t[+val '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?The output of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals echo>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is written to the\n'>
                          <Id.Char_Literals '\t\toutput file.]\n'>
                          <Id.Char_Literals '\t[+var '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?A user defined test on name. A source block must be\n'>
                          <Id.Char_Literals '\t\tsupplied. Sets the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals exp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' variable '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals _>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' on success\n'>
                          <Id.Char_Literals '\t\tbut does not define a macro.]\n'>
                          <Id.Char_Literals '\t[+('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals expression>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ')?Equivalent to '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'exp -'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals expression>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '}\n'>
                          <Id.Char_Literals '[+?Code block names may be prefixed by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals no>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to invert the test sense. The\n'>
                          <Id.Char_Literals '\tblock names are:]{\n'>
                          <Id.Char_Literals '\t[+cat?The block is copied to the output file.]\n'>
                          <Id.Char_Literals '\t[+compile?The block is compiled ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'cc -c'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ').]\n'>
                          <Id.Char_Literals 
'\t[+cross?The block is executed as a shell script using '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals crossexec>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)\n'>
                          <Id.Char_Literals '\t\tif '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals --cross>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is on, or on the local host otherwise, and the\n'>
                          <Id.Char_Literals 
'\t\toutput is copied to the output file. Test macros are not\n'
                          >
                          <Id.Char_Literals '\t\texported to the script.]\n'>
                          <Id.Char_Literals 
'\t[+execute?The block is compiled, linked, and executed. '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 0>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' exit\n'>
                          <Id.Char_Literals '\t\tstatus means success.]\n'>
                          <Id.Char_Literals 
'\t[+fail?If the test fails then the block text is evaluated by\n'
                          >
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1).]\n'>
                          <Id.Char_Literals '\t[+link?The block is compiled and linked ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'cc -o'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ').]\n'>
                          <Id.Char_Literals '\t[+macro?The block is preprocessed ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'cc -E'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ') and lines containing\n'>
                          <Id.Char_Literals '\t\ttext bracketed by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '<<"'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '">>'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'less-than less-than\n'>
                          <Id.Char_Literals 
'\t\tdouble-quote ... double-quote greater-than greater-than'
                          >
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ')\n'>
                          <Id.Char_Literals 
'\t\tare copied to the output file with the brackets omitted.]\n'
                          >
                          <Id.Char_Literals 
'\t[+no?If the test fails then the block text is copied to the\n'
                          >
                          <Id.Char_Literals '\t\toutput file. Deprecated: use { '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals if>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals elif>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals else>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals endif>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' } with unnamed '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' blocks.]\n'>
                          <Id.Char_Literals 
'\t[+note?If the test succeeds then the block is copied to the output\n'
                          >
                          <Id.Char_Literals '\t\tas a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '/*'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '*/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' comment.]\n'>
                          <Id.Char_Literals 
'\t[+output?The block is compiled, linked, and executed, and the output\n'
                          >
                          <Id.Char_Literals '\t\tis copied to the output file.]\n'>
                          <Id.Char_Literals 
'\t[+pass?If the test succeeds then the block text is evaluated by\n'
                          >
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1).]\n'>
                          <Id.Char_Literals '\t[+preprocess?The block is preprocessed ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'cc -E'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ').]\n'>
                          <Id.Char_Literals 
'\t[+run?The block is executed as a shell script and the output is\n'
                          >
                          <Id.Char_Literals 
'\t\tcopied to the output file. Succesful test macros are also\n'
                          >
                          <Id.Char_Literals '\t\tdefined as shell variables with value '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and are available\n'>
                          <Id.Char_Literals 
'\t\twithin the block. Likewise, failed test macros are defined\n'
                          >
                          <Id.Char_Literals '\t\tas shell variables with value '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 0>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals 
'\t[+status?The block is compiled, linked, and executed, and the exit\n'
                          >
                          <Id.Char_Literals '\t\tstatus is the test outcome, 0 for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals failure>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', the value\n'>
                          <Id.Char_Literals '\t\totherwise.]\n'>
                          <Id.Char_Literals 
'\t[+yes?If the test succeeds then the block text is copied to the output\n'
                          >
                          <Id.Char_Literals '\t\tfile. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'yes{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}end'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is equivalent to the unnamed block\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.  Deprecated: use { '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals if>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals elif>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals else>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals endif>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' } with unnamed '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '{'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ... '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '}'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' blocks.]\n'>
                          <Id.Char_Literals '}\n'>
                          <Id.Char_Literals '[+SEE ALSO?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals autoconf>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals config>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals getconf>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals crossexec>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1),\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)]\n'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <getopts>
                      more_env: []
                      words: [
                        {<getopts>}
                        {<-a>}
                        {(DQ ($ Id.VSub_DollarName command))}
                        {(DQ ($ Id.VSub_DollarName USAGE))}
                        {<OPT>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPT)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <a>
                          pattern: (pat.Words words:[{<a>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set all :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <c>
                          pattern: (pat.Words words:[{<c>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set cc '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <C>
                          pattern: (pat.Words words:[{<C>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set config :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <d>
                          pattern: (pat.Words words:[{<d>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set debug '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <D>
                          pattern: (pat.Words words:[{<D>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set define :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <E>
                          pattern: (pat.Words words:[{<E>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set explicit :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <F>
                          pattern: (pat.Words words:[{<F>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set features '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <i>
                          pattern: (pat.Words words:[{<i>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set input '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <I>
                          pattern: (pat.Words words:[{<I>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set include '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <L>
                          pattern: (pat.Words words:[{<L>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set library '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <n>
                          pattern: (pat.Words words:[{<n>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set namval '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <N>
                          pattern: (pat.Words words:[{<N>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set nooptimize '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <o>
                          pattern: (pat.Words words:[{<o>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set output '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <e>
                          pattern: (pat.Words words:[{<e>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set package '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <p>
                          pattern: (pat.Words words:[{<p>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set prototyped :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <P>
                          pattern: (pat.Words words:[{<P>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set pragma '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <r>
                          pattern: (pat.Words words:[{<r>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set regress :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <s>
                          pattern: (pat.Words words:[{<s>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set shell '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <S>
                          pattern: (pat.Words words:[{<S>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set static '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <O>
                          pattern: (pat.Words words:[{<O>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set stdio '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <u>
                          pattern: (pat.Words words:[{<u>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set undef :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <v>
                          pattern: (pat.Words words:[{<v>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName set) <' set verbose :'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <x>
                          pattern: (pat.Words words:[{<x>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set cross '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <X>
                          pattern: (pat.Words words:[{<X>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'set='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'set='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName set) <' set exclude '> 
                                        ($ Id.VSub_DollarName OPTARG) <' :'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [
                {<shift>}
                {
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Simple
                        blame_tok: <expr>
                        more_env: []
                        words: [{<expr>} {($ Id.VSub_DollarName OPTIND)} {<->} {<1>}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<->}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<-->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--a>
                          pattern: (pat.Words words:[{<--a>} {<--al>} {<--all>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<a>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--cc>
                          pattern: (pat.Words words:[{<--cc> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<c> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--co>
                          pattern: 
                            (pat.Words
                              words: [{<--co>} {<--con>} {<--conf>} {<--confi>} {<--config>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<C>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--cr>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--cr> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--cro> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--cros> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--cross> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<x> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {<-e>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--d>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--d> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--de> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--deb> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--debu> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--debug> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<d> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--def>
                          pattern: (pat.Words words:[{<--def>} {<--defi>} {<--defin>} {<--define>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<D>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--e>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--e> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--ex> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--exc> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--excl> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--exclu> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--exclud> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--exclude> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<X> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--e>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--e>}
                                {<--ex>}
                                {<--exp>}
                                {<--expl>}
                                {<--expli>}
                                {<--explic>}
                                {<--explici>}
                                {<--explicit>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<E>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--f>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--f> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--fe> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--fea> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--feat> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--featu> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--featur> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--feature> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--features> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<F> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--inp>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--inp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--inpu> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--input> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<i> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--inc>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--inc> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--incl> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--inclu> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--includ> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--include> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<I> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--l>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--l> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--li> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--lib> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--libr> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--libra> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--librar> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--library> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<L> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--n>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--n>}
                                {<--na>}
                                {<--nam>}
                                {<--name>}
                                {<--name-v>}
                                {<--name-va>}
                                {<--name-val>}
                                {<--name-valu>}
                                {<--name-value>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<n>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--o>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--o> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--ou> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--out> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--outp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--outpu> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--output> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<o> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--pa>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--pa> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--pac> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--pack> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--packa> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--packag> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--package> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<e> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--pro>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--pro>}
                                {<--prot>}
                                {<--proto>}
                                {<--protot>}
                                {<--prototy>}
                                {<--prototyp>}
                                {<--prototype>}
                                {<--prototyped>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<p>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--pra>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--pra> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--prag> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--pragma> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<P> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--r>
                          pattern: 
                            (pat.Words
                              words: [{<--r>} {<--re>} {<--reg>} {<--regre>} {<--regres>} {<--regress>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<r>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--sh>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--sh> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--she> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--shel> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--shell> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<s> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--sta>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--sta> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--stat> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--stati> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--static> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<S> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--std>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--std> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--stdi> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--stdio> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<O> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,[^=]*=,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--u>
                          pattern: 
                            (pat.Words
                              words: [{<--u>} {<--un>} {<--und>} {<--unde>} {<--undef>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<u>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--v>
                          pattern: 
                            (pat.Words
                              words: [
                                {<--v>}
                                {<--ve>}
                                {<--ver>}
                                {<--verb>}
                                {<--verbo>}
                                {<--verbos>}
                                {<--verbose>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: {<v>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<--> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                                {<unknown>}
                                {<option>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<2>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'REM='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'REM='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REM='> name:REM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<X> ($ Id.VSub_Number 1)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s,X-,,'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName REM)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName REM)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [
                                              {<sed>}
                                              {
                                                (DQ <'s,'> <Id.Lit_BadBackslash '\\'> <'(.'> 
                                                  <Id.Lit_BadBackslash '\\'> <')'> <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <'),OPT=\''> 
                                                  <Id.Lit_BadBackslash '\\'> <'1\' REM=\''> <Id.Lit_BadBackslash '\\'> <'2\','>
                                                )
                                              }
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPT)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <cdFiILoOePsSxX> <Id.Lit_RBracket ']'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName REM)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {($ Id.VSub_DollarName command) 
                                                          <Id.Lit_Colon ':'>
                                                        }
                                                        {<-> ($ Id.VSub_DollarName OPT) 
                                                          <Id.Lit_Colon ':'>
                                                        }
                                                        {<option>}
                                                        {<argument>}
                                                        {<expected>}
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '>&'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<2>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'OPTARG='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'OPTARG='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'OPTARG='>
                                                      name: OPTARG
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'OPTARG='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'OPTARG='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'OPTARG='>
                                                      name: OPTARG
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName REM)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'REM='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'REM='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'REM='>
                                                      name: REM
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ )}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPT)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <a>
                                  pattern: (pat.Words words:[{<a>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set all :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <c>
                                  pattern: (pat.Words words:[{<c>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set cc '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <C>
                                  pattern: (pat.Words words:[{<C>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set config :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <d>
                                  pattern: (pat.Words words:[{<d>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set debug '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <D>
                                  pattern: (pat.Words words:[{<D>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set define :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <E>
                                  pattern: (pat.Words words:[{<E>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set explicit :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <F>
                                  pattern: (pat.Words words:[{<F>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set features '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <i>
                                  pattern: (pat.Words words:[{<i>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set input '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <I>
                                  pattern: (pat.Words words:[{<I>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set include '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <L>
                                  pattern: (pat.Words words:[{<L>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set library '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <n>
                                  pattern: (pat.Words words:[{<n>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set namval '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <N>
                                  pattern: (pat.Words words:[{<N>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set nooptimize '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <o>
                                  pattern: (pat.Words words:[{<o>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set output '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <e>
                                  pattern: (pat.Words words:[{<e>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set package '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <p>
                                  pattern: (pat.Words words:[{<p>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set prototyped :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <P>
                                  pattern: (pat.Words words:[{<P>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set pragma '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <r>
                                  pattern: (pat.Words words:[{<r>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set regress :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <s>
                                  pattern: (pat.Words words:[{<s>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set shell '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <S>
                                  pattern: (pat.Words words:[{<S>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set static '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <O>
                                  pattern: (pat.Words words:[{<O>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set stdio '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <u>
                                  pattern: (pat.Words words:[{<u>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set undef :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <v>
                                  pattern: (pat.Words words:[{<v>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName set) <' set verbose :'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <x>
                                  pattern: (pat.Words words:[{<x>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set cross '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <X>
                                  pattern: (pat.Words words:[{<X>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'set='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'set='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'set='>
                                              name: set
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName set) <' set exclude '> 
                                                ($ Id.VSub_DollarName OPTARG) <' :'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'Usage: '> ($ Id.VSub_DollarName command) 
                                            <
' [-aCDEnpruv] [-c C-compiler-name [C-compiler-flags ...]] [-d level]\n'
                                            > <'\t    [-F features-header] [-i file] [-o file] [-O stdio-header] [-e name] [-P text]\n'> 
                                            <
'\t    [-s shell-path] [-S[flags]] [-x cross-exec-prefix] [-I dir] [-L dir] [-X dir] [ - ]\n'
                                            > <'\t    [ file.iffe | statement [ : statement ... ] ]'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<2>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <->
          pattern: (pat.Words words:[{<->}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'out='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'out='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'out='> name:out)
                      op: assign_op.Equal
                      rhs: {<->}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <0>
          pattern: (pat.Words words:[{<0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'in='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'in='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'in='> name:in)
                  op: assign_op.Equal
                  rhs: {<->}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-->} {($ Id.VSub_DollarName set)} {(DQ ($ Id.VSub_At '@'))}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_Star '*') <' '>)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> (SQ <' set config '>) <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> (SQ <' run config.'>) <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> (SQ <' run '>) <Id.Lit_Star '*'> (SQ <' config.'>) <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> (SQ <' run '>) <Id.Lit_Star '*'> (SQ <'/config.'>) <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'config='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'config='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'config='> name:config)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'stdout='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'stdout='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stdout='> name:stdout)
          op: assign_op.Equal
          rhs: {<5>}
        )
        (AssignPair
          left: <Id.Lit_VarLike 'stderr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stderr='> name:stderr)
          op: assign_op.Equal
          rhs: {<6>}
        )
        (AssignPair
          left: <Id.Lit_VarLike 'nullin='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nullin='> name:nullin)
          op: assign_op.Equal
          rhs: {<7>}
        )
        (AssignPair
          left: <Id.Lit_VarLike 'nullout='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nullout='> name:nullout)
          op: assign_op.Equal
          rhs: {<8>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <eval>
      more_env: []
      words: [
        {<eval>}
        {
          (DQ <'exec '> ($ Id.VSub_DollarName nullin) <'</dev/null '> ($ Id.VSub_DollarName nullout) 
            <'>/dev/null '> ($ Id.VSub_DollarName stdout) <'>&1 '> ($ Id.VSub_DollarName stderr) <'>&2'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_Star '*') <' '>)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> (DQ <' set debug '>) <Id.Lit_LBracket '['> <3456789> 
                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {(DQ <'exec 2>&'> ($ Id.VSub_DollarName nullout))}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <print>
                    more_env: []
                    words: [{<print>} {<-n>} {<aha>}]
                    redirects: [
                      (Redir
                        op: <Id.Redir_Less '<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: {<'/dev/null'>}
                      )
                      (Redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <aha>
          pattern: (pat.Words words:[{<aha>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'show='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'show='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'show='> name:show)
                  op: assign_op.Equal
                  rhs: {(SQ <'print -n'>)}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'SHOW='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHOW='> name:SHOW)
                  op: assign_op.Equal
                  rhs: {(SQ )}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {<-n>} {<aha>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-n>
                  pattern: (pat.Words words:[{<-n> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'show='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'show='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'show='> name:show)
                          op: assign_op.Equal
                          rhs: {<echo>}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'SHOW='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHOW='> name:SHOW)
                          op: assign_op.Equal
                          rhs: {(SQ <'\\c'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'show='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'show='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'show='> name:show)
                          op: assign_op.Equal
                          rhs: {(SQ <'echo -n'>)}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'SHOW='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHOW='> name:SHOW)
                          op: assign_op.Equal
                          rhs: {(SQ )}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'status='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'status='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <2>
          pattern: (pat.Words words:[{<2>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'core='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'core='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'core='> name:core)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.Simple
                              blame_tok: <ulimit>
                              more_env: []
                              words: [{<ulimit>} {<-c>} {<0>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Right_Subshell _>
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <ulimit>
                      more_env: []
                      words: [{<ulimit>} {<-c>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'core='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'core='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'core='> name:core)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [8909 8926]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'core='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'core='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'core='> name:core)
                      op: assign_op.Equal
                      rhs: {(DQ <'core core.??*'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Simple
      blame_tok: <trap>
      more_env: []
      words: [
        {<trap>}
        {(DQ <'rm -f '> ($ Id.VSub_DollarName core) <' '> ($ Id.VSub_DollarName tmp) <'*'>)}
        {<0>}
      ]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                        )
                      ]
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {($ Id.VSub_DollarName tmp) <.c>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [8965 8977]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [
            {<echo>}
            {(DQ ($ Id.VSub_DollarName command) <': cannot create tmp files in current dir'>)}
          ]
          redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'status='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'status='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status)
          op: assign_op.Equal
          rhs: {<2>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'std='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'std='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'std='> name:std)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)\n'> 
                <'#define _STD_\t\t1\n'> <'#define _ARG_(x)\tx\n'> <'#define _VOID_\t\tvoid\n'> <'#else\n'> <'#define _STD_\t\t0\n'> 
                <'#define _ARG_(x)\t()\n'> <'#define _VOID_\t\tchar\n'> <'#endif\n'> <'#if defined(__cplusplus)\n'> 
                <'#define _BEGIN_EXTERNS_\textern "C" {\n'> <'#define _END_EXTERNS_\t}\n'> <'#else\n'> <'#define _BEGIN_EXTERNS_\n'> <'#define _END_EXTERNS_\n'> 
                <'#endif\n'> <'#define _NIL_(x)\t((x)0)'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'tst='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'tst='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tst='> name:tst)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ext='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ext='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ext='> name:ext)
          op: assign_op.Equal
          rhs: {(DQ <'#include <stdio.h>'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'noext='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'noext='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'noext='> name:noext)
          op: assign_op.Equal
          rhs: {(SQ <'*[<"][Ss][Tt][Dd][Ii][Oo].[Hh][">]*|*<ast.h>*|*<sfio.h>*|*/[*]<NOSTDIO>[*]/*'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'argx='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'argx='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argx='> name:argx)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'cur='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'cur='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cur='> name:cur)
          op: assign_op.Equal
          rhs: {<.>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'can='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'can='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'can='> name:can)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'cansep='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'cansep='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cansep='> name:cansep)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'cctest='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'cctest='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cctest='> name:cctest)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'file='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'file='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'hdrtest='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'hdrtest='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hdrtest='> name:hdrtest)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ifelse='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ifelse='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifelse='> name:ifelse)
          op: assign_op.Equal
          rhs: {<NONE>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ifstack='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ifstack='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifstack='> name:ifstack)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ini='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ini='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ini='> name:ini)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'init='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'init='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'init='> name:init)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'line='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'line='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'nan='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'nan='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nan='> name:nan)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'prototyped='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'prototyped='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prototyped='> name:prototyped)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName in)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {($ Id.VSub_DollarName argx) <Id.Lit_Colon ':'> ($ Id.VSub_Star '*')}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: 
                            (pat.Words
                              words: [{<1> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName argv)}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'argx='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'argx='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argx='> name:argx)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<x>} {($ Id.VSub_DollarName argv)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ini)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <read>
                                          more_env: []
                                          words: [{<read>} {<lin>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <ksh>
                                          pattern: (pat.Words words:[{<ksh>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <let>
                                              more_env: []
                                              words: [
                                                {<let>}
                                                {<Id.Lit_VarLike 'line='> <line> <Id.Lit_Other '+'> <1>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'line='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'line='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'line='>
                                                      name: line
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <expr>
                                                            more_env: []
                                                            words: [
                                                              {<expr>}
                                                              {($ Id.VSub_DollarName line)}
                                                              {<Id.Lit_Other '+'>}
                                                              {<1>}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$posix_noglob'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName posix_noglob)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {<x>} {($ Id.VSub_DollarName lin)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$posix_glob'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName posix_glob)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [9159 9166]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [{<set>} {<x>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$posix_noglob'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName posix_noglob)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<x>} {($ Id.VSub_DollarName ini)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$posix_glob'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName posix_glob)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ini='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ini='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ini='> name:ini)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName init)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <iff>
                                  pattern: (pat.Words words:[{<iff>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'init='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'init='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'init='>
                                              name: init
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <print>
                                  pattern: (pat.Words words:[{<print>} {<ref>} {<set>}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'init='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'init='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'init='>
                                              name: init
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ini='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ini='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ini='>
                                              name: ini
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Star '*')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {<ini>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifstack)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName file) 
                                    ($ Id.VSub_DollarName line) <': missing endif'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<set>} {<out>} {<Id.Lit_Other '+'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ <if>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ifstack='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ifstack='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'ifstack='>
                                      name: ifstack
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName ifelse) <':'> 
                                        ($ Id.VSub_DollarName ifstack)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifelse)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <KEEP>
                                  pattern: (pat.Words words:[{<KEEP>} {<NONE>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifelse='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifelse='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifelse='>
                                              name: ifelse
                                            )
                                          op: assign_op.Equal
                                          rhs: {<TEST>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <TEST>
                                  pattern: (pat.Words words:[{<TEST>}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifelse='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifelse='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifelse='>
                                              name: ifelse
                                            )
                                          op: assign_op.Equal
                                          rhs: {<DONE>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName explicit)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [{<set>} {(SQ )} {<->} {(DQ ($ Id.VSub_At '@'))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ <elif>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifelse)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <SKIP>
                                  pattern: (pat.Words words:[{<SKIP>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifelse='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifelse='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifelse='>
                                              name: ifelse
                                            )
                                          op: assign_op.Equal
                                          rhs: {<TEST>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <TEST>
                                  pattern: (pat.Words words:[{<TEST>}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifelse='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifelse='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifelse='>
                                              name: ifelse
                                            )
                                          op: assign_op.Equal
                                          rhs: {<DONE>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <NONE>
                                  pattern: (pat.Words words:[{<NONE>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_Number 1) <': no matching if'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName explicit)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [{<set>} {(SQ )} {<->} {(DQ ($ Id.VSub_At '@'))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ <else>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifelse)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <KEEP>
                                  pattern: (pat.Words words:[{<KEEP>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifelse='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifelse='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifelse='>
                                              name: ifelse
                                            )
                                          op: assign_op.Equal
                                          rhs: {<DONE>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <SKIP>
                                  pattern: (pat.Words words:[{<SKIP>} {<TEST>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifelse='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifelse='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifelse='>
                                              name: ifelse
                                            )
                                          op: assign_op.Equal
                                          rhs: {<KEEP>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <NONE>
                                  pattern: (pat.Words words:[{<NONE>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_Number 1) <': no matching if'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ <endif>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifelse)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <NONE>
                                  pattern: (pat.Words words:[{<NONE>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_Number 1) <': no matching if'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <ksh>
                                  pattern: (pat.Words words:[{<ksh>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifelse='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifelse='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifelse='>
                                              name: ifelse
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name ifstack>
                                                var_name: ifstack
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_DPercent '%%'>
                                                    arg_word: {<':'> <Id.Lit_Other '*'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ifstack='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ifstack='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ifstack='>
                                              name: ifstack
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name ifstack>
                                                var_name: ifstack
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {<Id.Lit_Other '*'> <':'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <echo>
                                                    more_env: []
                                                    words: [{<echo>} {($ Id.VSub_DollarName ifstack)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <sed>
                                                    more_env: []
                                                    words: [
                                                      {<sed>}
                                                      {
                                                        (SQ 
                                                          <
's,\\([^:]*\\):\\(.*\\),ifelse=\\1 ifstack=\\2,'
                                                          >
                                                        )
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ <'('>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<exp>} {<->} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.iffe>} {<Id.Lit_Star '*'> <.iff>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<run>} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Continue continue>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <run>
                  pattern: (pat.Words words:[{<run>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <bsh>
                          pattern: (pat.Words words:[{<bsh>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'x='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'x='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_Number 2)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s,.*[\\\\/],,'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'x='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'x='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 2)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [{<eval>} {(SQ <'x=${2##*[\\\\/]}'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <.iffe>} {<Id.Lit_Star '*'> <.iff>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<set>} {<Id.KW_In in>} {($ Id.VSub_Number 2)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<set>} {<Id.KW_In in>} {($ Id.VSub_Number 2)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )} {(DQ <'#'>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <inc>
                  pattern: (pat.Words words:[{<inc>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifelse)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <DONE>
                          pattern: (pat.Words words:[{<DONE>} {<SKIP>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [{<set>} {(SQ )}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName file) 
                                    ($ Id.VSub_DollarName line) <': path expected'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName p)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName file) 
                                    ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_DollarName p) <': file not found'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [10140 10151]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName config)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'e='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'e='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'^HAVE_'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'e='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'e='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'^_'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'e='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'e='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName file) 
                                    ($ Id.VSub_DollarName line) <': warning: '> ($ Id.VSub_Star '*') <': operands ignored'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {<-e>}
                                      {(SQ <'/^#define[ \t]/!d'>)}
                                      {<-e>}
                                      {(SQ <'s/#define[ \t]//'>)}
                                      {<-e>}
                                      {(SQ <'s/[ \t(].*//'>)}
                                      {
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name e>
                                          var_name: e
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VTest_ColonPlus _>
                                              arg_word: {(DQ <'-e/'> ($ Id.VSub_DollarName e) <'/!d'>)}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      }
                                      {<-e>}
                                      {(SQ <'s/.*/&=1/'>)}
                                      {($ Id.VSub_DollarName p)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sort>
                                    more_env: [
                                      (EnvPair
                                        left: <Id.Lit_VarLike 'LC_ALL='>
                                        name: LC_ALL
                                        val: {<C>}
                                      )
                                    ]
                                    words: [{<sort>} {<-u>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Continue continue>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <set>
                  pattern: (pat.Words words:[{<set>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifelse)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <DONE>
                          pattern: (pat.Words words:[{<DONE>} {<SKIP>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [{<set>} {(SQ )}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ )} {(DQ <'#'>) <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'op='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'op='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'op='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'op='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <-->
                                  pattern: (pat.Words words:[{<--> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <bsh>
                                          pattern: (pat.Words words:[{<bsh>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {<X> ($ Id.VSub_DollarName op)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <sed>
                                                                more_env: []
                                                                words: [{<sed>} {(SQ <'s/X--//'>)}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name op>
                                                        var_name: op
                                                        suffix_op: 
                                                          (suffix_op.Unary
                                                            op: <Id.VOp1_Pound '#'>
                                                            arg_word: {<-->}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName shell)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <bsh>
                                                  pattern: (pat.Words words:[{<bsh>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arg='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {<X> 
                                                                            ($ Id.VSub_DollarName op)
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {(SQ <'s/X-.//'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'op='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'op='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'op='>
                                                              name: op
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {<X> 
                                                                            ($ Id.VSub_DollarName op)
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {
                                                                            (SQ 
                                                                              <'s/X\\(-.\\).*/\\1/'>
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arg='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name op>
                                                                var_name: op
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op: <Id.VOp1_Pound '#'>
                                                                    arg_word: {<-> <Id.Lit_Other '?'>}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'op='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'op='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'op='>
                                                              name: op
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name op>
                                                                var_name: op
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op: <Id.VOp1_Percent '%'>
                                                                    arg_word: 
                                                                      {($ Id.VSub_DollarName arg)}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <a>
                                          pattern: (pat.Words words:[{<a>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<all>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <c>
                                          pattern: (pat.Words words:[{<c>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<cc>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <C>
                                          pattern: (pat.Words words:[{<C>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<config>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <d>
                                          pattern: (pat.Words words:[{<d>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<debug>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <D>
                                          pattern: (pat.Words words:[{<D>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<define>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <E>
                                          pattern: (pat.Words words:[{<E>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<explicit>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <F>
                                          pattern: (pat.Words words:[{<F>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<features>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <i>
                                          pattern: (pat.Words words:[{<i>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<input>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <I>
                                          pattern: (pat.Words words:[{<I>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<include>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <L>
                                          pattern: (pat.Words words:[{<L>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<library>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <n>
                                          pattern: (pat.Words words:[{<n>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<namval>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <N>
                                          pattern: (pat.Words words:[{<N>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<nooptimize>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <o>
                                          pattern: (pat.Words words:[{<o>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<output>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <e>
                                          pattern: (pat.Words words:[{<e>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<package>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <p>
                                          pattern: (pat.Words words:[{<p>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<prototyped>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <P>
                                          pattern: (pat.Words words:[{<P>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<pragma>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <r>
                                          pattern: (pat.Words words:[{<r>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<regress>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <s>
                                          pattern: (pat.Words words:[{<s>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<shell>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <S>
                                          pattern: (pat.Words words:[{<S>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<static>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <O>
                                          pattern: (pat.Words words:[{<O>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<stdio>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <u>
                                          pattern: (pat.Words words:[{<u>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<undef>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <v>
                                          pattern: (pat.Words words:[{<v>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<verbose>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <x>
                                          pattern: (pat.Words words:[{<x>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<cross>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <X>
                                          pattern: (pat.Words words:[{<X>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'op='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'op='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'op='>
                                                      name: op
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<exclude>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> (DQ <' '>) <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: 
                                            (pat.Words
                                              words: [{(DQ )} {(DQ <'#'>) <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'arg='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arg='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      name: arg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'arg='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arg='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      name: arg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName arg) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <all>
                          pattern: (pat.Words words:[{<all>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'all='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'all='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'all='> name:all)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <cc>
                          pattern: (pat.Words words:[{<cc>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'occ='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'occ='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'occ='> name:occ)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [x]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName arg)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName occ)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_Equals '='> 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <bsh>
                                                          pattern: (pat.Words words:[{<bsh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {($ Id.VSub_DollarName x)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <export>
                                                              more_env: []
                                                              words: [
                                                                {<export>}
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (command.Simple
                                                                            blame_tok: <echo>
                                                                            more_env: []
                                                                            words: [
                                                                              {<echo>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName x
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.Simple
                                                                            blame_tok: <sed>
                                                                            more_env: []
                                                                            words: [
                                                                              {<sed>}
                                                                              {(SQ <'s/=.*//'>)}
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        ]
                                                                        ops: [<Id.Op_Pipe _>]
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <export>
                                                              more_env: []
                                                              words: [
                                                                {<export>}
                                                                {($ Id.VSub_DollarName x)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <-O>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-O> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName optimize)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'occ='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'occ='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'occ='>
                                                                      name: occ
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName x)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'occ='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'occ='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'occ='>
                                                              name: occ
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'occ='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'occ='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'occ='>
                                                      name: occ
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName occ) <' '> 
                                                        ($ Id.VSub_DollarName x)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <exclude>
                              more_env: []
                              words: [{<exclude>} {<occ>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <config>
                          pattern: (pat.Words words:[{<config>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'config='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'config='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'config='> name:config)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <cross>
                          pattern: (pat.Words words:[{<cross>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )} {<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cross='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cross='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cross='>
                                              name: cross
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cross='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cross='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cross='>
                                              name: cross
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'libpaths='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'libpaths='>
                                              name: libpaths
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <debug>
                          pattern: (pat.Words words:[{<debug>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'debug='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'debug='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug='> name:debug)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {($ Id.VSub_DollarName nullout)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {<->}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'show='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'show='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'show='>
                                              name: show
                                            )
                                          op: assign_op.Equal
                                          rhs: {<echo>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'SHOW='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'SHOW='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SHOW='>
                                              name: SHOW
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )} {<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {<->}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'show='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'show='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'show='>
                                              name: show
                                            )
                                          op: assign_op.Equal
                                          rhs: {<echo>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'SHOW='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'SHOW='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SHOW='>
                                              name: SHOW
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <2>
                                  pattern: (pat.Words words:[{<2>} {<3>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <ksh>
                                          pattern: (pat.Words words:[{<ksh>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {(SQ <'PS4="${PS4%+*([ \t])}+\\$LINENO+ "'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'show='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'show='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'show='>
                                              name: show
                                            )
                                          op: assign_op.Equal
                                          rhs: {<echo>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'SHOW='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'SHOW='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SHOW='>
                                              name: SHOW
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {<-x>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName arg) <': debug levels are 0, 1, 2, 3'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <define>
                          pattern: (pat.Words words:[{<define>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'define='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'define='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'define='> name:define)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <exclude>
                          pattern: (pat.Words words:[{<exclude>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )} {<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'excludes='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'excludes='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'excludes='>
                                              name: excludes
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'excludes='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'excludes='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'excludes='>
                                              name: excludes
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName excludes) <' '> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <exclude>
                              more_env: []
                              words: [{<exclude>} {<includes>} {<occ>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <explicit>
                          pattern: (pat.Words words:[{<explicit>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'explicit='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'explicit='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'explicit='>
                                      name: explicit
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <features>
                          pattern: (pat.Words words:[{<features>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tst='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tst='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tst='>
                                              name: tst
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tst='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tst='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tst='>
                                              name: tst
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'#include '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ <in>)} {<input>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'in='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'in='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'in='> name:in)
                                          op: assign_op.Equal
                                          rhs: {<->}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'in='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'in='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'in='> name:in)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<Id.KW_Bang '!'>}
                                                    {<-r>}
                                                    {($ Id.VSub_DollarName in)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName in) <': not found'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName stderr)}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [11442 11453]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Less '<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {($ Id.VSub_DollarName in)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'file='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'file='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'file='>
                                              name: file
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName in) <Id.Lit_Colon ':'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName out)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName in)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <.> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\\\'>
                                                            ch: '\\'
                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <bsh>
                                                          pattern: (pat.Words words:[{<bsh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (command.Simple
                                                                            blame_tok: <echo>
                                                                            more_env: []
                                                                            words: [
                                                                              {<echo>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName in
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.Simple
                                                                            blame_tok: <sed>
                                                                            more_env: []
                                                                            words: [
                                                                              {<sed>}
                                                                              {<-e>}
                                                                              {(SQ <'s,.*[\\\\/],,'>)}
                                                                              {<-e>}
                                                                              {(SQ <'s/\\.[^.]*//'>)}
                                                                              {<-e>}
                                                                              {(SQ <'s/^/out=/'>)}
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        ]
                                                                        ops: [<Id.Op_Pipe _>]
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {(SQ <'out=${in##*[\\\\/]}'>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [{<eval>} {(SQ <'out=${out%.*}'>)}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'out='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'out='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'out='>
                                                              name: out
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName in)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <include>
                          pattern: (pat.Words words:[{<include>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )} {<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'includes='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'includes='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'includes='>
                                              name: includes
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'includes='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'includes='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'includes='>
                                              name: includes
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName includes) <' -I'> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <exclude>
                              more_env: []
                              words: [{<exclude>} {<includes>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <library>
                          pattern: (pat.Words words:[{<library>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [y]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libpaths)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {($ Id.VSub_DollarName y) <Id.Lit_Equals '='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') ($ Id.VSub_DollarName y) 
                                          <Id.Lit_Colon ':'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <arg> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                            ch: '$'
                                          ) (${ Id.VSub_Name y) <_default> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [{<eval>} {<export>} {($ Id.VSub_DollarName y)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <namval>
                          pattern: (pat.Words words:[{<namval>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'define='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'define='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'define='> name:define)
                                  op: assign_op.Equal
                                  rhs: {<n>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <nodebug>
                          pattern: (pat.Words words:[{<nodebug>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <exec>
                              more_env: []
                              words: [{<exec>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {($ Id.VSub_DollarName nullout)}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<->}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <nodefine>
                          pattern: (pat.Words words:[{<nodefine>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'define='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'define='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'define='> name:define)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <nooptimize>
                          pattern: (pat.Words words:[{<nooptimize>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'optimize='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'optimize='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'optimize='>
                                      name: optimize
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName occ)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> (DQ <' -O'>) <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'occ='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'occ='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'occ='>
                                              name: occ
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName occ)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s/ -O[^ ]*//g'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cc='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cc='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName occ)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <optimize>
                          pattern: (pat.Words words:[{<optimize>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'optimize='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'optimize='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'optimize='>
                                      name: optimize
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <out>
                          pattern: (pat.Words words:[{<out>} {<output>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'out='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'out='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'out='> name:out)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'defhdr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'defhdr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'defhdr='> name:defhdr)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'usr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'usr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usr='> name:usr)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deflib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deflib='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deflib='> name:deflib)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'one='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'one='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'one='> name:one)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'puthdr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'puthdr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'puthdr='> name:puthdr)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'putlib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'putlib='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'putlib='> name:putlib)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <output>
                                  pattern: (pat.Words words:[{<output>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'def='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'def='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def='> name:def)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'test='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'test='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test='> name:test)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <package>
                          pattern: (pat.Words words:[{<package>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'protoflags='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'protoflags='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'protoflags='>
                                      name: protoflags
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName protoflags) <' -e '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <prototyped>
                          pattern: (pat.Words words:[{<prototyped>} {<noprototyped>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pragma='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pragma='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pragma='> name:pragma)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName pragma) <' '> ($ Id.VSub_DollarName op))
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <prototyped>
                                  pattern: (pat.Words words:[{<prototyped>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prototyped='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prototyped='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prototyped='>
                                              name: prototyped
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prototyped='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prototyped='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prototyped='>
                                              name: prototyped
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <pragma>
                          pattern: (pat.Words words:[{<pragma>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pragma='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pragma='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pragma='> name:pragma)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName pragma) <' '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <regress>
                          pattern: (pat.Words words:[{<regress>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'regress='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'regress='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'regress='>
                                      name: regress
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'version='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'version='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'version='>
                                      name: version
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1995-03-19>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <shell>
                          pattern: (pat.Words words:[{<shell>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <osh>
                                  pattern: (pat.Words words:[{<osh>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'posix_read='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'posix_read='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'posix_read='>
                                              name: posix_read
                                            )
                                          op: assign_op.Equal
                                          rhs: {<-no>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'shell='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'shell='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'shell='>
                                              name: shell
                                            )
                                          op: assign_op.Equal
                                          rhs: {<bsh>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'shell='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'shell='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'shell='> name:shell)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <static>
                          pattern: (pat.Words words:[{<static>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'static='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'static='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'static='> name:static)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <stdio>
                          pattern: (pat.Words words:[{<stdio>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ext='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ext='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ext='>
                                              name: ext
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ext='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ext='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ext='>
                                              name: ext
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'sep='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'sep='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'sep='>
                                              name: sep
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [i]
                                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName arg)}])
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: (pat.Words words:[{<->}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName ext)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'#include '> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) ($ Id.VSub_DollarName i) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<t.c>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$cc'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-E>}
                                                            {<t.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {<'/dev/null'>}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '2>&'>
                                                              loc: (redir_loc.Fd fd:2)
                                                              arg: {<1>}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'ext='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'ext='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'ext='>
                                                              name: ext
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName ext) 
                                                                ($ Id.VSub_DollarName sep) <'#include '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'sep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sep='>
                                                              name: sep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName nl)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [12125 12141]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <undef>
                          pattern: (pat.Words words:[{<undef>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'undef='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'undef='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'undef='> name:undef)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <verbose>
                          pattern: (pat.Words words:[{<verbose>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'verbose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'verbose='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'verbose='>
                                      name: verbose
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName op) 
                                    <': unknown option'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName stderr)}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <api>
                  pattern: 
                    (pat.Words
                      words: [
                        {<api>}
                        {<define>}
                        {<extern>}
                        {<header>}
                        {<include>}
                        {<print>}
                        {<reference>}
                        {<ver>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'op='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'op='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'arg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'arg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <'='>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'def='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'def='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def='> name:def)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ <->)} {(SQ <'?'>)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'def='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'def='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'def='>
                                              name: def
                                            )
                                          op: assign_op.Equal
                                          rhs: {<->}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'def='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'def='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'def='>
                                              name: def
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <'!'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'not='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'not='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'not='> name:not)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'not='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'not='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'not='> name:not)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> (SQ <'{'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'op='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'op='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                                  op: assign_op.Equal
                                  rhs: {<->}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: 
                            (pat.Words
                              words: [
                                {(SQ <'('>) <Id.Lit_Star '*'>}
                                {(SQ <'"'>) <Id.Lit_Star '*'> (SQ <'"'>)}
                                {(SQ <'<'>) <Id.Lit_Star '*'> (SQ <'>'>)}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'op='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'op='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                                  op: assign_op.Equal
                                  rhs: {<exp>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName def)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'def='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'def='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'def='>
                                              name: def
                                            )
                                          op: assign_op.Equal
                                          rhs: {<->}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'op='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'op='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'arg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'arg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cc='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cc='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName occ) <' '> ($ Id.VSub_DollarName includes))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'group='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'group='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'group='> name:group)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'groups='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'groups='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'groups='> name:groups)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fail='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fail='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fail='> name:fail)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'hdr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'hdr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hdr='> name:hdr)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'lib='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'lib='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'mac='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'mac='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mac='> name:mac)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'no='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'no='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no='> name:no)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'note='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'note='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'note='> name:note)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'opt='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'opt='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt='> name:opt)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pass='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pass='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pass='> name:pass)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pth='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pth='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'run='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'run='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'run='> name:run)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'set='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'set='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'src='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'src='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'src='> name:src)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'test='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'test='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test='> name:test)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'yes='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'yes='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yes='> name:yes)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ <'#'>) <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {<x>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <ref>
                                          pattern: (pat.Words words:[{<ref>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <->)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {($ Id.VSub_DollarName op) 
                                                              <Id.Lit_Colon ':'> ($ Id.VSub_Number 2)
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <tst>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<tst> <Id.Lit_Colon ':'> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'arg='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'arg='>
                                                                      name: arg
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_Number 1)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_Number 2)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <->
                                                                  pattern: (pat.Words words:[{<->}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <shift>
                                                                      more_env: []
                                                                      words: [{<shift>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                                  <-> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'arg='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'arg='>
                                                                      name: arg
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_Number 1)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'def='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'def='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'def='>
                                                                      name: def
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<->}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_Number 1)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_SingleQuote '\''>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {(SQ <'('>) <Id.Lit_Star '*'>}
                                                                        {<Id.Lit_Star '*'> (SQ <'{'>)}
                                                                        {(SQ <'"'>) <Id.Lit_Star '*'> 
                                                                          (SQ <'"'>)
                                                                        }
                                                                        {(SQ <'<'>) <Id.Lit_Star '*'> 
                                                                          (SQ <'>'>)
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'arg='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'arg='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'arg='
                                                                                >
                                                                              name: arg
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<->}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'arg='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'arg='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'arg='
                                                                                >
                                                                              name: arg
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {($ Id.VSub_Number 1)}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: {($ Id.VSub_Pound '#')}
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <0>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<0>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <shift>
                                                                              more_env: []
                                                                              words: [{<shift>}]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<-> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Other '+'> <Id.Lit_Star '*'>}
                                                        {(SQ <'('>) <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> (SQ <'{'>)}
                                                        {(SQ <'"'>) <Id.Lit_Star '*'> (SQ <'"'>)}
                                                        {(SQ <'<'>) <Id.Lit_Star '*'> (SQ <'>'>)}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arg='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<->}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arg='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 1)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {(SQ <'('>) <Id.Lit_Star '*'>}
                                        {(SQ <'"'>) <Id.Lit_Star '*'> (SQ <'"'>)}
                                        {(SQ <'<'>) <Id.Lit_Star '*'> (SQ <'>'>)}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <.> 
                                                          <Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName test)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'test='>
                                                              name: test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 1)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'test='>
                                                              name: test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName test) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'arg='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arg='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      name: arg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<->}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <exp>
                                          pattern: (pat.Words words:[{<exp>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName def)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )} {(SQ <->)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arg='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName def)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'sline='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'sline='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sline='> name:sline)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName line)}
                                )
                              ]
                              redirects: []
                            )
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ <'#'>) <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <set>
                                              more_env: []
                                              words: [{<set>} {<x>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ <'='>)}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'set='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'set='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'set='>
                                                      name: set
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Star '*')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName set)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'set='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'set='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'set='>
                                                              name: set
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <' '>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_Colon ':'>
                                                      more_env: []
                                                      words: [{<Id.Lit_Colon ':'>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Pound '#')}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <abcdefghijklmnopqrstuvwxyz> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> (SQ <'{'>)
                                                }
                                                {(SQ <'{'>)}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'v='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'v='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'v='>
                                                      name: v
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'x='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'x='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'x='>
                                                      name: x
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ <'note{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'sep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sep='>
                                                              name: sep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <' '>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'sep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sep='>
                                                              name: sep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName nl)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'e='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'e='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'e='>
                                                              name: e
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'}'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'e='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'e='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'e='>
                                                              name: e
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'}end'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'SEP='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'SEP='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'SEP='>
                                                      name: SEP
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_Colon ':'>
                                                      more_env: []
                                                      words: [{<Id.Lit_Colon ':'>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Pound '#')}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
posix_read
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <->
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<-> <Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <checkread>
                                                                      more_env: []
                                                                      words: [{<checkread>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName in)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_DoubleQuote '"'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{(DQ )}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
command
                                                                            ) <': '> ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': missing }end'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: 
                                                                            <Id.Redir_GreatAnd '>&'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
stderr
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Exit exit>
                                                                      arg_word: {<1>}
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.WhileUntil
                                                              keyword: <Id.KW_While while>
                                                              cond: 
                                                                (condition.Shell
                                                                  commands: [
                                                                    (command.Simple
                                                                      blame_tok: <Id.Lit_Colon ':'>
                                                                      more_env: []
                                                                      words: [{<Id.Lit_Colon ':'>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
posix_read
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <1>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<1>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName shell
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <ksh>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<ksh>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <read>
                                                                                      more_env: [
                                                                                        (EnvPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'IFS='
                                                                                            >
                                                                                          name: IFS
                                                                                          val: (rhs_word__Empty)
                                                                                        )
                                                                                      ]
                                                                                      words: [
                                                                                        {<read>}
                                                                                        {<-r>}
                                                                                        {<lin>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'eof='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'eof='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'eof='
                                                                                                >
                                                                                              name: 
eof
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_QMark '?'
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.WhileUntil
                                                                                      keyword: 
                                                                                        <
Id.KW_While while
                                                                                        >
                                                                                      cond: 
                                                                                        (condition.Shell
                                                                                          commands: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
Id.Lit_Colon ':'
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Colon ':'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                        )
                                                                                      body: 
                                                                                        (command.DoGroup
                                                                                          left: 
                                                                                            <
Id.KW_Do do
                                                                                            >
                                                                                          children: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'lin='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'lin='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'lin='
                                                                                                        >
                                                                                                      name: 
lin
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        (BracedVarSub
                                                                                                          left: 
                                                                                                            <
Id.Left_DollarBrace '${'
                                                                                                            >
                                                                                                          token: 
                                                                                                            <
Id.VSub_Name lin
                                                                                                            >
                                                                                                          var_name: 
lin
                                                                                                          suffix_op: 
                                                                                                            (suffix_op.Unary
                                                                                                              op: 
                                                                                                                <
Id.VOp1_Pound '#'
                                                                                                                >
                                                                                                              arg_word: 
                                                                                                                {
                                                                                                                  <
'['
                                                                                                                  > (SQ <' \t'>) <']'>
                                                                                                                }
                                                                                                            )
                                                                                                          right: 
                                                                                                            <
Id.Right_DollarBrace '}'
                                                                                                            >
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.Case
                                                                                              case_kw: 
                                                                                                <
Id.KW_Case case
                                                                                                >
                                                                                              to_match: 
                                                                                                (case_arg.Word
                                                                                                  w: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName lin
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              arms_start: 
                                                                                                <
Id.KW_In in
                                                                                                >
                                                                                              arms: [
                                                                                                (CaseArm
                                                                                                  left: 
                                                                                                    <
Id.Lit_LBracket '['
                                                                                                    >
                                                                                                  pattern: 
                                                                                                    (pat.Words
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
Id.Lit_LBracket '['
                                                                                                          > (SQ <' \t'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> (SQ <'#'>) <Id.Lit_Star '*'>
                                                                                                        }
                                                                                                      ]
                                                                                                    )
                                                                                                  middle: 
                                                                                                    <
Id.Right_CasePat _
                                                                                                    >
                                                                                                  action: []
                                                                                                  right: 
                                                                                                    <
Id.Op_DSemi _
                                                                                                    >
                                                                                                )
                                                                                                (CaseArm
                                                                                                  left: 
                                                                                                    <
Id.Lit_Star '*'
                                                                                                    >
                                                                                                  pattern: 
                                                                                                    (pat.Words
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
Id.Lit_Star '*'
                                                                                                          >
                                                                                                        }
                                                                                                      ]
                                                                                                    )
                                                                                                  middle: 
                                                                                                    <
Id.Right_CasePat _
                                                                                                    >
                                                                                                  action: [
                                                                                                    (command.ControlFlow
                                                                                                      keyword: 
                                                                                                        <
Id.ControlFlow_Break break
                                                                                                        >
                                                                                                    )
                                                                                                  ]
                                                                                                  right: 
                                                                                                    <
Id.Op_DSemi _
                                                                                                    >
                                                                                                )
                                                                                              ]
                                                                                              arms_end: 
                                                                                                <
Id.KW_Esac esac
                                                                                                >
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.KW_Done done
                                                                                            >
                                                                                        )
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'IFS='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'IFS='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'IFS='
                                                                                                >
                                                                                              name: 
IFS
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (rhs_word__Empty)
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <read>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<read>}
                                                                                        {<-r>}
                                                                                        {<lin>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'eof='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'eof='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'eof='
                                                                                                >
                                                                                              name: 
eof
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_QMark '?'
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'IFS='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'IFS='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'IFS='
                                                                                                >
                                                                                              name: 
IFS
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName ifs
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName lin
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_LBracket '['
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_LBracket '['
                                                                                                  > (SQ <' \t'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'lin='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'lin='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'lin='
                                                                                                        >
                                                                                                      name: 
lin
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (CommandSub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Simple
                                                                                                            blame_tok: 
                                                                                                              <
sed
                                                                                                              >
                                                                                                            more_env: []
                                                                                                            words: [
                                                                                                              {
                                                                                                                <
sed
                                                                                                                >
                                                                                                              }
                                                                                                              {
                                                                                                                <
-e
                                                                                                                >
                                                                                                              }
                                                                                                              {
                                                                                                                (SQ 
                                                                                                                  <
's,^[ \t],,'
                                                                                                                  >
                                                                                                                )
                                                                                                              }
                                                                                                              {
                                                                                                                <
-e
                                                                                                                >
                                                                                                              }
                                                                                                              {
                                                                                                                (SQ 
                                                                                                                  <
's,^[ \t]*#,#,'
                                                                                                                  >
                                                                                                                )
                                                                                                              }
                                                                                                            ]
                                                                                                            redirects: [
                                                                                                              (Redir
                                                                                                                op: 
                                                                                                                  <
Id.Redir_DLess '<<'
                                                                                                                  >
                                                                                                                loc: 
                                                                                                                  (redir_loc.Fd
                                                                                                                    fd: 
0
                                                                                                                  )
                                                                                                                arg: 
                                                                                                                  (redir_param.HereDoc
                                                                                                                    here_begin: 
                                                                                                                      {
                                                                                                                        <
Id.KW_Bang '!'
                                                                                                                        >
                                                                                                                      }
                                                                                                                    here_end_tok: 
                                                                                                                      <
Id.Undefined_Tok ''
                                                                                                                      >
                                                                                                                    stdin_parts: [
                                                                                                                      ($ 
Id.VSub_DollarName lin
                                                                                                                      )
                                                                                                                      <
'\n'
                                                                                                                      >
                                                                                                                    ]
                                                                                                                  )
                                                                                                              )
                                                                                                            ]
                                                                                                            do_fork: 
T
                                                                                                          )
                                                                                                        right: 
                                                                                                          <
Id.Backtick_Right '`'
                                                                                                          >
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'lin='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'lin='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'lin='
                                                                                        >
                                                                                      name: lin
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <
Id.VSub_DollarName '$posix_read'
                                                                                              >
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName posix_read
                                                                                                )
                                                                                              }
                                                                                            ]
                                                                                            redirects: []
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'eof='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'eof='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'eof='
                                                                                        >
                                                                                      name: eof
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_QMark '?'
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
eof
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <0>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<0>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName shell
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <ksh>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<ksh>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <let>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<let>}
                                                                                        {
                                                                                          <
Id.Lit_VarLike 'line='
                                                                                          > <line> <Id.Lit_Other '+'> <1>
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'line='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'line='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'line='
                                                                                                >
                                                                                              name: 
line
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
expr
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
expr
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        ($ 
Id.VSub_DollarName line
                                                                                                        )
                                                                                                      }
                                                                                                      {
                                                                                                        <
Id.Lit_Other '+'
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
1
                                                                                                        >
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$posix_noglob'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName posix_noglob
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <set>
                                                                              more_env: []
                                                                              words: [
                                                                                {<set>}
                                                                                {<x>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName lin
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$posix_glob'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName posix_glob
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_Number 2
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <
Id.VSub_DollarName '$v'
                                                                                    >
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName v
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName shell
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: <ksh>
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
ksh
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
let
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
let
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
Id.Lit_VarLike 'n='
                                                                                                  > <n> <Id.Lit_Other '+'> <1>
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'n='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'n='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'n='
                                                                                                        >
                                                                                                      name: 
n
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (CommandSub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Simple
                                                                                                            blame_tok: 
                                                                                                              <
expr
                                                                                                              >
                                                                                                            more_env: []
                                                                                                            words: [
                                                                                                              {
                                                                                                                <
expr
                                                                                                                >
                                                                                                              }
                                                                                                              {
                                                                                                                ($ 
Id.VSub_DollarName n
                                                                                                                )
                                                                                                              }
                                                                                                              {
                                                                                                                <
Id.Lit_Other '+'
                                                                                                                >
                                                                                                              }
                                                                                                              {
                                                                                                                <
1
                                                                                                                >
                                                                                                              }
                                                                                                            ]
                                                                                                            redirects: []
                                                                                                            do_fork: 
T
                                                                                                          )
                                                                                                        right: 
                                                                                                          <
Id.Backtick_Right '`'
                                                                                                          >
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <
Id.VSub_DollarName '$e'
                                                                                    >
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName e
                                                                                          )
                                                                                        }
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName e
                                                                                          ) (SQ <';'>)
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName n
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: <1>
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {<1>}
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
shift
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
shift
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Break break
                                                                                                >
                                                                                              arg_word: 
                                                                                                {<2>}
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName shell
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: <ksh>
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
ksh
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
let
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
let
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
Id.Lit_VarLike 'n='
                                                                                                  > <n-1>
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'n='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'n='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'n='
                                                                                                        >
                                                                                                      name: 
n
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (CommandSub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Simple
                                                                                                            blame_tok: 
                                                                                                              <
expr
                                                                                                              >
                                                                                                            more_env: []
                                                                                                            words: [
                                                                                                              {
                                                                                                                <
expr
                                                                                                                >
                                                                                                              }
                                                                                                              {
                                                                                                                ($ 
Id.VSub_DollarName n
                                                                                                                )
                                                                                                              }
                                                                                                              {
                                                                                                                <
-
                                                                                                                >
                                                                                                              }
                                                                                                              {
                                                                                                                <
1
                                                                                                                >
                                                                                                              }
                                                                                                            ]
                                                                                                            redirects: []
                                                                                                            do_fork: 
T
                                                                                                          )
                                                                                                        right: 
                                                                                                          <
Id.Backtick_Right '`'
                                                                                                          >
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'x='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      name: x
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        ) ($ Id.VSub_DollarName SEP) ($ Id.VSub_DollarName lin)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'SEP='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'SEP='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'SEP='
                                                                                        >
                                                                                      name: SEP
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName sep
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName command
                                                                                    ) <': '> ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': missing '> ($ Id.VSub_DollarName e)
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_GreatAnd '>&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName stderr
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Exit exit
                                                                                >
                                                                              arg_word: {<1>}
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Number 1)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.VSub_DollarName '$v'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{($ Id.VSub_DollarName v)}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <ksh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<ksh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <let>
                                                                      more_env: []
                                                                      words: [
                                                                        {<let>}
                                                                        {<Id.Lit_VarLike 'n='> <n> 
                                                                          <Id.Lit_Other '+'> <1>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'n='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'n='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'n='>
                                                                              name: n
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    blame_tok: <expr>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<expr>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName n
                                                                                        )
                                                                                      }
                                                                                      {
                                                                                        <
Id.Lit_Other '+'
                                                                                        >
                                                                                      }
                                                                                      {<1>}
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.VSub_DollarName '$e'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {($ Id.VSub_DollarName e)}
                                                                {($ Id.VSub_DollarName e) (SQ <';'>)}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName n)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <1>
                                                                  pattern: (pat.Words words:[{<1>}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Break break>
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <ksh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<ksh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <let>
                                                                      more_env: []
                                                                      words: [
                                                                        {<let>}
                                                                        {<Id.Lit_VarLike 'n='> <n-1>}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'n='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'n='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'n='>
                                                                              name: n
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    blame_tok: <expr>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<expr>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName n
                                                                                        )
                                                                                      }
                                                                                      {<->}
                                                                                      {<1>}
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName x) 
                                                                ($ Id.VSub_DollarName SEP) ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'SEP='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'SEP='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'SEP='>
                                                              name: SEP
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName sep)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'note{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName x) 
                                                                ($ Id.VSub_DollarName nl)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'fail{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'fail='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'fail='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'fail='>
                                                              name: fail
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'nofail{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'pass='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'pass='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'pass='>
                                                              name: pass
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'v='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'v='>
                                                              name: v
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'pass{'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'nopass{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'fail='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'fail='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'fail='>
                                                              name: fail
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'v='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'v='>
                                                              name: v
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'fail{'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'no{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'no='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'no='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'no='>
                                                              name: no
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'note{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'note='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'note='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'note='>
                                                              name: note
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'pass{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'pass='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'pass='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'pass='>
                                                              name: pass
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ <'test{'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'test='>
                                                              name: test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{(SQ <'yes{'>)} {(SQ <'{'>)}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'yes='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'yes='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'yes='>
                                                              name: yes
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'src='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'src='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'src='>
                                                              name: src
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'run='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'run='>
                                                              name: run
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName v)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\('>
                                                    ch: '('
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\{'>
                                                    ch: '{'
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'> ch:'}') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\ '>
                                                    ch: ' '
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\t') <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <pth>
                                                  pattern: (pat.Words words:[{<pth>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'pth='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'pth='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'pth='>
                                                              name: pth
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName pth) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName test)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'test='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'test='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'test='>
                                                                      name: test
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_Number 1)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'test='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'test='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'test='>
                                                                      name: test
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName test) 
                                                                        <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<->}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'group='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'group='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'group='>
                                                      name: group
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName group) 
                                                      ($ Id.VSub_Number 1)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName group)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: (pat.Words words:[{<->}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'com_hdr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'com_hdr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'com_hdr='>
                                                              name: com_hdr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName hdr)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'com_lib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'com_lib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'com_lib='>
                                                              name: com_lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName lib)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'com_mac='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'com_mac='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'com_mac='>
                                                              name: com_mac
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName mac)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'com_opt='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'com_opt='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'com_opt='>
                                                              name: com_opt
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName opt)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'com_pth='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'com_pth='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'com_pth='>
                                                              name: com_pth
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName pth)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'com_test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'com_test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'com_test='>
                                                              name: com_test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName test)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'groups='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'groups='>
                                                              name: groups
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <-l>
                                          pattern: (pat.Words words:[{<-l> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName group)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<--> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'groups='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'groups='>
                                                              name: groups
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib='>
                                                              name: lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Other '+'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Other '+'> <l> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName shell)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <bsh>
                                                  pattern: (pat.Words words:[{<bsh>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {<X> ($ Id.VSub_Number 1)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {(SQ <'s/X+/-/'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [{<eval>} {(SQ <'x=-${1#+}'>)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName group)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<--> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'groups='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'groups='>
                                                              name: groups
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                                ($ Id.VSub_DollarName x)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib='>
                                                              name: lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                                ($ Id.VSub_DollarName x)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <->
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<-> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Other '+'> <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <ref>
                                                  pattern: (pat.Words words:[{<ref>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'cc='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'cc='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'cc='>
                                                              name: cc
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName cc) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'occ='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'occ='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'occ='>
                                                              name: occ
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName occ) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Number 1)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <-L>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<-L> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <ksh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<ksh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (BracedVarSub
                                                                                left: 
                                                                                  <
Id.Left_DollarBrace '${'
                                                                                  >
                                                                                token: 
                                                                                  <Id.VSub_Number 1>
                                                                                var_name: 1
                                                                                suffix_op: 
                                                                                  (suffix_op.Unary
                                                                                    op: 
                                                                                      <
Id.VOp1_Pound '#'
                                                                                      >
                                                                                    arg_word: {<-L>}
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Right_DollarBrace '}'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <echo>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<echo>}
                                                                                          {<x> 
                                                                                            ($ 
Id.VSub_Number 1
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <sed>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<sed>}
                                                                                          {
                                                                                            (SQ 
                                                                                              <
's,^x-L,,'
                                                                                              >
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [y]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {($ Id.VSub_DollarName libpaths)}
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {($ Id.VSub_DollarName y) 
                                                                          <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\$'
                                                                              >
                                                                            ch: '$'
                                                                          ) ($ Id.VSub_DollarName y) <Id.Lit_Colon ':'> 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\$'
                                                                              >
                                                                            ch: '$'
                                                                          ) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') (${ Id.VSub_Name y) <_default> 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\"'
                                                                              >
                                                                            ch: '"'
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {<export>}
                                                                        {($ Id.VSub_DollarName y)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName group)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <-->
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<--> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'groups='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'groups='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'groups='>
                                                                      name: groups
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName groups) <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName op)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <run>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<run>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'opt='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'opt='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'opt='
                                                                                >
                                                                              name: opt
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName opt
                                                                                ) <' '> ($ Id.VSub_Number 1)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: {($ Id.VSub_Number 1)}
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <-D>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<-D> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'mac='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'mac='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'mac='
                                                                                        >
                                                                                      name: mac
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName mac
                                                                                        ) <' '> ($ Id.VSub_Number 1)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'cc='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'cc='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'cc='
                                                                                        >
                                                                                      name: cc
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName cc
                                                                                        ) <' '> ($ Id.VSub_Number 1)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <aAxX> 
                                                  <Id.Lit_RBracket ']'>
                                                }
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <dD> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'>
                                                }
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <lL> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <iI> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <bB> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName group)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<--> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'groups='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'groups='>
                                                              name: groups
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib='>
                                                              name: lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <.> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\\\'>
                                                    ch: '\\'
                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName group)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<--> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'groups='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'groups='>
                                                              name: groups
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName op)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <pth>
                                                          pattern: (pat.Words words:[{<pth>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'pth='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'pth='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'pth='>
                                                                      name: pth
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName pth) 
                                                                        <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'hdr='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'hdr='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'hdr='>
                                                                      name: hdr
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName hdr) 
                                                                        <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName group)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<--> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'groups='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'groups='>
                                                              name: groups
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName op)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <pth>
                                                          pattern: (pat.Words words:[{<pth>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'pth='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'pth='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'pth='>
                                                                      name: pth
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName pth) 
                                                                        <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName test)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_SingleQuote '\''>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{(SQ )}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'test='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'test='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'test='
                                                                                >
                                                                              name: test
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {($ Id.VSub_Number 1)}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'test='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'test='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'test='
                                                                                >
                                                                              name: test
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName test
                                                                                ) <' '> ($ Id.VSub_Number 1)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'group='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'group='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'group='>
                                              name: group
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ifelse)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <DONE>
                  pattern: (pat.Words words:[{<DONE>} {<SKIP>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cc='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cc='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName occ) <' '> ($ Id.VSub_DollarName includes))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cctest)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <checkcc>
                      more_env: []
                      words: [{<checkcc>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <api>
                          pattern: (pat.Words words:[{<api>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {<->}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {($ Id.VSub_Number 1) <Id.Lit_Colon ':'> ($ Id.VSub_Number 2)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> 
                                          <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> <0-9> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'a='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'a='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 1)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName apis) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName a) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'apis='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'apis='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'apis='>
                                                      name: apis
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName apis) <' '> 
                                                        ($ Id.VSub_DollarName a)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<api_sym_> (${ Id.VSub_Name a) <Id.Lit_Equals '='>}
                                                {<api_ver_> (${ Id.VSub_Name a) <Id.Lit_Equals '='>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'rel='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'rel='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rel='>
                                              name: rel
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <0-9> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> 
                                                          <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'rel='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'rel='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rel='>
                                                              name: rel
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName rel) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Colon ':'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'syms='> (SQ <'$'>) <api_sym_> 
                                                  (${ Id.VSub_Name a)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName syms)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'sep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sep='>
                                                              name: sep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ )}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'sep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sep='>
                                                              name: sep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName nl)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [r]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName rel)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'syms='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'syms='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'syms='>
                                                              name: syms
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName syms) 
                                                              ($ Id.VSub_DollarName sep) (${ Id.VSub_Number 1) <Id.Lit_Colon ':'> (${ Id.VSub_Name r)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'sep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sep='>
                                                              name: sep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName nl)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<api_sym_> (${ Id.VSub_Name a) <Id.Lit_Equals '='> 
                                                  (SQ <'$'>) <syms>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName op) <': expected: name YYYYMMDD symbol ...'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <iff>
                          pattern: (pat.Words words:[{<iff>} {<ini>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {<->}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <comment>
                          pattern: (pat.Words words:[{<comment>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <copy>
                              more_env: []
                              words: [{<copy>} {<->} {(DQ <'/* '> ($ Id.VSub_Star '*') <' */'>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <define>
                          pattern: (pat.Words words:[{<define>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: 
                                    (pat.Words
                                      words: [{(SQ <'('>) <Id.Lit_Star '*'> (SQ <')'>)}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'arg='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'arg='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg='>
                                              name: arg
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 1)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName in)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'v='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'v='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 't='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 't='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 't='>
                                                      name: t
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ <':'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'v='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'v='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'v='>
                                                      name: v
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName v) <' '> 
                                                        ($ Id.VSub_DollarName t)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'v='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'v='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Star '*')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <is>
                              more_env: []
                              words: [{<is>} {<mac>} {($ Id.VSub_DollarName x)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <copy>
                              more_env: []
                              words: [
                                {<copy>}
                                {($ Id.VSub_DollarName tmp) <.c>}
                                {
                                  (DQ ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) 
                                    <'\n'> <'#ifndef '> ($ Id.VSub_DollarName x) <'\n'> <'(\n'> <'#endif\n'> <'int x;\n'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <compile>
                                          more_env: []
                                          words: [
                                            {<compile>}
                                            {($ Id.VSub_DollarName cc)}
                                            {<-c>}
                                            {($ Id.VSub_DollarName tmp) <.c>}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_LessAnd '<&'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName nullin)}
                                            )
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName nullout)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <success>
                                      more_env: []
                                      words: [{<success>} {<->}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [15579 15597]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <failure>
                                  more_env: []
                                  words: [{<failure>} {<->}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <copy>
                                  more_env: []
                                  words: [
                                    {<copy>}
                                    {<->}
                                    {
                                      (DQ <'#define '> ($ Id.VSub_DollarName x) 
                                        ($ Id.VSub_DollarName arg) <'\t'> ($ Id.VSub_DollarName v)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'usr='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'usr='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usr='> name:usr)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName usr) (${ Id.VSub_Name nl) 
                                            <'#define '> ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName arg) <'  '> ($ Id.VSub_DollarName v)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <extern>
                          pattern: (pat.Words words:[{<extern>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 't='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 't='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <is>
                              more_env: []
                              words: [{<is>} {<npt>} {($ Id.VSub_DollarName x)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <copy>
                              more_env: []
                              words: [
                                {<copy>}
                                {($ Id.VSub_DollarName tmp) <.c>}
                                {
                                  (DQ <'\n'> ($ Id.VSub_DollarName std) <'\n'> 
                                    <'#include <sys/types.h>\n'> ($ Id.VSub_DollarName usr) <'\n'> <'_BEGIN_EXTERNS_\n'> <'struct _iffe_struct { int _iffe_member; };\n'> 
                                    <'extern struct _iffe_struct* '> ($ Id.VSub_DollarName x) <' _ARG_((struct _iffe_struct*));\n'> <'_END_EXTERNS_\n'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName cc) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> (DQ <' -O '>) <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'xx='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'xx='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xx='> name:xx)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName cc)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s/ -O / /g'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'xx='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'xx='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xx='> name:xx)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName cc)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <compile>
                                          more_env: []
                                          words: [
                                            {<compile>}
                                            {($ Id.VSub_DollarName xx)}
                                            {<-c>}
                                            {($ Id.VSub_DollarName tmp) <.c>}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_LessAnd '<&'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName nullin)}
                                            )
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName nullout)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <success>
                                      more_env: []
                                      words: [{<success>} {<->}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {(SQ )}
                                                        {(SQ <'('>) <Id.Lit_Star '*'>}
                                                        {(SQ <'['>) <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 't='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 't='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 't='>
                                                      name: t
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName t) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName in)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'v='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'v='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'v='>
                                                      name: v
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_Colon ':'>
                                                      more_env: []
                                                      words: [{<Id.Lit_Colon ':'>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Pound '#')}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 't='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't='>
                                                              name: t
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 1)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName t)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_DoubleQuote '"'>
                                                          pattern: (pat.Words words:[{(DQ <':'>)}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'v='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'v='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'v='>
                                                              name: v
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName v) <' '> 
                                                                ($ Id.VSub_DollarName t)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'v='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'v='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'v='>
                                                      name: v
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Star '*')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <copy>
                                      more_env: []
                                      words: [
                                        {<copy>}
                                        {<->}
                                        {
                                          (DQ <'extern '> ($ Id.VSub_DollarName t) <'\t'> 
                                            ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <';'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName prototyped)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'usr='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'usr='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'usr='>
                                                      name: usr
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName usr) 
                                                        (${ Id.VSub_Name nl) <'extern '> ($ Id.VSub_DollarName t) <' '> ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <';'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [15746 15764]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <failure>
                                  more_env: []
                                  words: [{<failure>} {<->}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName in)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Left_DoubleQuote '"'>
                                      pattern: (pat.Words words:[{(DQ )}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.WhileUntil
                                          keyword: <Id.KW_While while>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <Id.Lit_Colon ':'>
                                                  more_env: []
                                                  words: [{<Id.Lit_Colon ':'>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          body: 
                                            (command.DoGroup
                                              left: <Id.KW_Do do>
                                              children: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <0>
                                                      pattern: (pat.Words words:[{<0>}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_DoubleQuote '"'>
                                                      pattern: (pat.Words words:[{(DQ <':'>)}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <header>
                          pattern: (pat.Words words:[{<header>} {<include>} {<reference>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'x='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'x='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 1)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ <':'>)}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName gothdr) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' - '> ($ Id.VSub_DollarName x) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' + '> ($ Id.VSub_DollarName x) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName usr)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> (DQ <'# include <'>) 
                                                          ($ Id.VSub_DollarName x) (DQ <'>'>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName op)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <reference>
                                                          pattern: (pat.Words words:[{<reference>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <copy>
                                                              more_env: []
                                                              words: [
                                                                {<copy>}
                                                                {<->}
                                                                {
                                                                  (DQ <'#include <'> 
                                                                    ($ Id.VSub_DollarName x) <'>'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'usr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'usr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'usr='>
                                                              name: usr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName usr) 
                                                                (${ Id.VSub_Name nl) <'#include <'> ($ Id.VSub_DollarName x) <'>'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <copy>
                                              more_env: []
                                              words: [
                                                {<copy>}
                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName std) <'\n'> 
                                                    ($ Id.VSub_DollarName usr) <'\n'> <'#include <'> ($ Id.VSub_DollarName x) <'>\n'> <'int x;\n'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <is_hdr>
                                                          more_env: []
                                                          words: [
                                                            {<is_hdr>}
                                                            {<->}
                                                            {($ Id.VSub_DollarName x)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'gothdr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'gothdr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'gothdr='>
                                                              name: gothdr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName gothdr) 
                                                                <' + '> ($ Id.VSub_DollarName x)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName op)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <reference>
                                                          pattern: (pat.Words words:[{<reference>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <copy>
                                                              more_env: []
                                                              words: [
                                                                {<copy>}
                                                                {<->}
                                                                {
                                                                  (DQ <'#include <'> 
                                                                    ($ Id.VSub_DollarName x) <'>'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'usr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'usr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'usr='>
                                                              name: usr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName usr) 
                                                                (${ Id.VSub_Name nl) <'#include <'> ($ Id.VSub_DollarName x) <'>'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [16252 16261]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'gothdr='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'gothdr='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'gothdr='>
                                                          name: gothdr
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName gothdr) <' - '> 
                                                            ($ Id.VSub_DollarName x)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <print>
                          pattern: (pat.Words words:[{<print>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName in)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'v='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'v='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 't='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 't='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 't='>
                                                      name: t
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ <':'>)}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'v='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'v='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'v='>
                                                      name: v
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName v) <' '> 
                                                        ($ Id.VSub_DollarName t)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'v='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'v='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Star '*')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <copy>
                              more_env: []
                              words: [{<copy>} {<->} {(DQ ($ Id.VSub_Star '*'))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'usr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'usr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usr='> name:usr)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName usr) (${ Id.VSub_Name nl) 
                                        ($ Id.VSub_DollarName v)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <ver>
                          pattern: (pat.Words words:[{<ver>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {<->}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {($ Id.VSub_Number 1) <Id.Lit_Colon ':'> ($ Id.VSub_Number 2)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> 
                                          <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> <0-9> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'vers='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'vers='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'vers='>
                                              name: vers
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName vers) 
                                                ($ Id.VSub_DollarName nl) ($ Id.VSub_Number 1)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<ver_> ($ Id.VSub_Number 1) <Id.Lit_Equals '='> 
                                          ($ Id.VSub_Number 2)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName op) <': expected: name YYYYMMDD'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName stderr)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ext)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [{<Id.Lit_Star '*'> (DQ <'<stdio.h>'>) <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName ext)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> (DQ <'#define NOTE('>) <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ext='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ext='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ext='> name:ext)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName ext) <'\n'> 
                                        <'#define NOTE(s)\tdo{write(9,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <',1);write(9,s,strlen(s));write(9,'> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <' ...'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <',4);}while(0)'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'argx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'argx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argx='> name:argx)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'argv='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'argv='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argv='> name:argv)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cc='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cc='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName cc) <' '> ($ Id.VSub_DollarName mac))}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName hdrtest)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'hdrtest='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'hdrtest='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'hdrtest='>
                                      name: hdrtest
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'allinc='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'allinc='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'allinc='> name:allinc)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [x]
                              iterable: (for_iter.Words words:[{<types>}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName config)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'c='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'c='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'c='>
                                                      name: c
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<_sys_> (${ Id.VSub_Name x)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName shell)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <ksh>
                                                  pattern: (pat.Words words:[{<ksh>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <typeset>
                                                      more_env: []
                                                      words: [
                                                        {<typeset>}
                                                        {<-u>}
                                                        {<Id.Lit_VarLike 'u='> 
                                                          ($ Id.VSub_DollarName x)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'u='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'u='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'u='>
                                                              name: u
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {($ Id.VSub_DollarName x)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <tr>
                                                                        more_env: []
                                                                        words: [
                                                                          {<tr>}
                                                                          {
                                                                            <
abcdefghijklmnopqrstuvwxyz
                                                                            >
                                                                          }
                                                                          {
                                                                            <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                            >
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'c='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'c='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'c='>
                                                      name: c
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<HAVE_SYS_> (${ Id.VSub_Name u) <_H>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'x='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'x='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                          op: assign_op.Equal
                                          rhs: {<'sys/'> ($ Id.VSub_DollarName x) <.h>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ (${ Id.VSub_Name allinc) <'#include <'> 
                                            ($ Id.VSub_DollarName x) <'>'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <is_hdr>
                                                  more_env: []
                                                  words: [{<is_hdr>} {($ Id.VSub_DollarName x)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'gothdr='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'gothdr='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'gothdr='>
                                                      name: gothdr
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName gothdr) <' + '> 
                                                        ($ Id.VSub_DollarName x)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName explicit)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'can='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'can='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'can='>
                                                              name: can
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName can) 
                                                                ($ Id.VSub_DollarName cansep) <'#define '> ($ Id.VSub_DollarName c) <'\t1\t/* #include <'> ($ Id.VSub_DollarName x) <'> ok */'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'nan='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'nan='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'nan='>
                                                              name: nan
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName nan) 
                                                                ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'=1'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'cansep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'cansep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'cansep='>
                                                              name: cansep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName nl)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {($ Id.VSub_DollarName c) <Id.Lit_Equals '='> <1>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'allinc='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'allinc='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'allinc='>
                                                      name: allinc
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ (${ Id.VSub_Name allinc) <'#include <'> 
                                                        ($ Id.VSub_DollarName x) <'>'> ($ Id.VSub_DollarName nl)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [16869 16876]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'gothdr='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'gothdr='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'gothdr='>
                                                  name: gothdr
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName gothdr) <' - '> 
                                                    ($ Id.VSub_DollarName x)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Case
                                          case_kw: <Id.KW_Case case>
                                          to_match: 
                                            (case_arg.Word
                                              w: 
                                                {($ Id.VSub_DollarName explicit) 
                                                  ($ Id.VSub_DollarName all) ($ Id.VSub_DollarName config) ($ Id.VSub_DollarName undef)
                                                }
                                            )
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <0>
                                              pattern: 
                                                (pat.Words
                                                  words: [
                                                    {<0> <Id.Lit_QMark '?'> <1> <Id.Lit_QMark '?'>}
                                                    {<0> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <1>}
                                                  ]
                                                )
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'can='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'can='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'can='>
                                                          name: can
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName can) 
                                                            ($ Id.VSub_DollarName cansep) <'#undef\t'> ($ Id.VSub_DollarName c) <'\t\t/* #include <'> ($ Id.VSub_DollarName x) <'> not ok */'>
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'nan='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'nan='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'nan='>
                                                          name: nan
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName nan) 
                                                            ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'='>
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'cansep='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'cansep='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'cansep='>
                                                          name: cansep
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName nl)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                            (CaseArm
                                              left: <01>
                                              pattern: 
                                                (pat.Words
                                                  words: [{<01> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]
                                                )
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'can='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'can='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'can='>
                                                          name: can
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName can) 
                                                            ($ Id.VSub_DollarName cansep) <'#define '> ($ Id.VSub_DollarName c) <'\t0\t/* #include <'> ($ Id.VSub_DollarName x) <'> not ok */'>
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'nan='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'nan='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'nan='>
                                                          name: nan
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName nan) 
                                                            ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'=0'>
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'cansep='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'cansep='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'cansep='>
                                                          name: cansep
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName nl)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <npt>
                          pattern: (pat.Words words:[{<npt>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'hdr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'hdr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hdr='> name:hdr)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'sys/types.h stdlib.h unistd.h '> 
                                        ($ Id.VSub_DollarName hdr)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <siz>
                          pattern: (pat.Words words:[{<siz>} {<typ>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'hdr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'hdr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hdr='> name:hdr)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        <
'sys/types.h time.h sys/time.h sys/times.h stddef.h stdlib.h '
                                        > ($ Id.VSub_DollarName hdr)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName hdr)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'z='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'z='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'z='> name:z)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName hdr)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'hdr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'hdr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hdr='> name:hdr)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dis='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dis='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dis='> name:dis)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [x]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName z)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.h>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName gothdr) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' - '> ($ Id.VSub_DollarName x) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' + '> ($ Id.VSub_DollarName x) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <bsh>
                                                          pattern: (pat.Words words:[{<bsh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (command.Simple
                                                                            blame_tok: <echo>
                                                                            more_env: []
                                                                            words: [
                                                                              {<echo>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName x
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.Simple
                                                                            blame_tok: <sed>
                                                                            more_env: []
                                                                            words: [
                                                                              {<sed>}
                                                                              {<-e>}
                                                                              {
                                                                                (SQ 
                                                                                  <
's,^\\([^\\\\/]*\\).*[\\\\/]\\([^\\\\/]*\\)$,\\1_\\2,'
                                                                                  >
                                                                                )
                                                                              }
                                                                              {<-e>}
                                                                              {(SQ <'s/\\..*//'>)}
                                                                              {<-e>}
                                                                              {(SQ <'s/^/c=/'>)}
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        ]
                                                                        ops: [<Id.Op_Pipe _>]
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {(SQ <'c=${x##*[\\\\/]}'>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [{<eval>} {(SQ <'c=${c%%.*}'>)}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName x)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <'/'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (SQ 
                                                                            <
'c=${x%%[\\\\/]*}_${c}'
                                                                            >
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName explicit)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'dis='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'dis='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'dis='>
                                                                      name: dis
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<0>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName x)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <'/'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'dis='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'dis='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'dis='
                                                                                >
                                                                              name: dis
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName c)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'dis='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'dis='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'dis='
                                                                                >
                                                                              name: dis
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<hdr>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {(${ Id.VSub_Name dis) 
                                                                      <Id.Lit_Underscore _>
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_DollarBrace '${'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {(${ Id.VSub_Name op) 
                                                                          <Id.Lit_Underscore _> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'dis='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'dis='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'dis='
                                                                                >
                                                                              name: dis
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<0>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'dis='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'dis='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'dis='
                                                                                >
                                                                              name: dis
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<1>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName config)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName x)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <'/'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<Id.Lit_Underscore _> 
                                                                              (${ Id.VSub_Name c)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<_hdr_> 
                                                                              (${ Id.VSub_Name c)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <ksh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<ksh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <typeset>
                                                                      more_env: []
                                                                      words: [
                                                                        {<typeset>}
                                                                        {<-u>}
                                                                        {<Id.Lit_VarLike 'u='> 
                                                                          ($ Id.VSub_DollarName c)
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'u='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'u='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'u='>
                                                                              name: u
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <echo>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<echo>}
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName c
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <tr>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<tr>}
                                                                                          {
                                                                                            <
abcdefghijklmnopqrstuvwxyz
                                                                                            >
                                                                                          }
                                                                                          {
                                                                                            <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                            >
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<HAVE_> (${ Id.VSub_Name u) <_H>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ (${ Id.VSub_Name allinc) <'#include <'> 
                                                            ($ Id.VSub_DollarName x) <'>'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <is_hdr>
                                                                  more_env: []
                                                                  words: [
                                                                    {<is_hdr>}
                                                                    {($ Id.VSub_DollarName x)}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'gothdr='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'gothdr='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'gothdr='>
                                                                      name: gothdr
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName gothdr) <' + '> ($ Id.VSub_DollarName x)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName dis)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <0>
                                                                  pattern: (pat.Words words:[{<0>}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'can='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'can='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'can='
                                                                                >
                                                                              name: can
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName can
                                                                                ) ($ Id.VSub_DollarName cansep) <'#define '> ($ Id.VSub_DollarName c) <'\t1\t/* #include <'> 
                                                                                ($ 
Id.VSub_DollarName x
                                                                                ) <'> ok */'>
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'nan='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'nan='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'nan='
                                                                                >
                                                                              name: nan
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName nan
                                                                                ) ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'=1'>
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'cansep='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'cansep='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'cansep='
                                                                                >
                                                                              name: cansep
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
nl
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {($ Id.VSub_DollarName c) 
                                                                  <Id.Lit_Equals '='> <1>
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [17527 17534]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'gothdr='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'gothdr='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'gothdr='>
                                                                  name: gothdr
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName gothdr) 
                                                                    <' - '> ($ Id.VSub_DollarName x)
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: 
                                                                {($ Id.VSub_DollarName dis) 
                                                                  ($ Id.VSub_DollarName all) ($ Id.VSub_DollarName config) ($ Id.VSub_DollarName undef)
                                                                }
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <0>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<0> <Id.Lit_QMark '?'> <1> 
                                                                      <Id.Lit_QMark '?'>
                                                                    }
                                                                    {<0> <Id.Lit_QMark '?'> 
                                                                      <Id.Lit_QMark '?'> <1>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'can='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'can='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'can='>
                                                                          name: can
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName can) ($ Id.VSub_DollarName cansep) <'#undef\t'> ($ Id.VSub_DollarName c) <'\t\t/* #include <'> 
                                                                            ($ Id.VSub_DollarName x) <'> not ok */'>
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'nan='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'nan='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'nan='>
                                                                          name: nan
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName nan) ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'='>
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'cansep='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'cansep='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'cansep='
                                                                            >
                                                                          name: cansep
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {($ Id.VSub_DollarName nl)}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <01>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<01> <Id.Lit_QMark '?'> 
                                                                      <Id.Lit_QMark '?'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'can='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'can='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'can='>
                                                                          name: can
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName can) ($ Id.VSub_DollarName cansep) <'#define '> ($ Id.VSub_DollarName c) <'\t0\t/* #include <'> 
                                                                            ($ Id.VSub_DollarName x) <'> not ok */'>
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'nan='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'nan='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'nan='>
                                                                          name: nan
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName nan) ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'=0'>
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'cansep='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'cansep='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'cansep='
                                                                            >
                                                                          name: cansep
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {($ Id.VSub_DollarName nl)}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Continue continue>
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [{<test>} {<-r>} {($ Id.VSub_DollarName x)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'hdr='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'hdr='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'hdr='>
                                              name: hdr
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName hdr) <' '> 
                                                ($ Id.VSub_DollarName x)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName lib)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'z='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'z='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'z='> name:z)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [p]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName lib)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'z='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'z='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'z='> name:z)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName p) <' '> 
                                                ($ Id.VSub_DollarName z)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lib='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'hit='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'hit='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hit='> name:hit)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'int main(){return(0);}'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [x]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName z)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName x)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName gotlib) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <'- '> ($ Id.VSub_DollarName p) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <failure>
                                              more_env: []
                                              words: [{<failure>} {<Id.Lit_Other '+'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <'+ '> ($ Id.VSub_DollarName p) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <success>
                                              more_env: []
                                              words: [{<success>} {<Id.Lit_Other '+'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lib='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lib='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      name: lib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName p) <' '> 
                                                        ($ Id.VSub_DollarName lib)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <rm>
                                              more_env: []
                                              words: [{<rm>} {<-f>} {($ Id.VSub_DollarName tmp) <.exe>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<LIB>} {($ Id.VSub_DollarName p)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-o>}
                                                            {($ Id.VSub_DollarName tmp) <.exe>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                            {($ Id.VSub_DollarName p)}
                                                            {($ Id.VSub_DollarName lib)}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName nullout)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <success>
                                                      more_env: []
                                                      words: [{<success>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'gotlib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'gotlib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'gotlib='>
                                                              name: gotlib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName gotlib) 
                                                                <' + '> ($ Id.VSub_DollarName p)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib='>
                                                              name: lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName p) <' '> 
                                                                ($ Id.VSub_DollarName lib)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'e='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'e='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'e='>
                                                              name: e
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<0>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [17895 17920]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'a='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'a='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'a='>
                                                          name: a
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: (rhs_word__Empty)
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'e='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'e='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'e='>
                                                          name: e
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ForEach
                                                  keyword: <Id.KW_For for>
                                                  iter_names: [l]
                                                  iterable: 
                                                    (for_iter.Words
                                                      words: [{($ Id.VSub_DollarName z)}]
                                                    )
                                                  body: 
                                                    (command.DoGroup
                                                      left: <Id.KW_Do do>
                                                      children: [
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName l)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <->
                                                              pattern: (pat.Words words:[{<->}])
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'a='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'a='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: <Id.Lit_VarLike 'a='>
                                                                          name: a
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: (rhs_word__Empty)
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: 
                                                                    <Id.ControlFlow_Continue 
continue
                                                                    >
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.VSub_DollarName '$p'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{($ Id.VSub_DollarName p)}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'a='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'a='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: <Id.Lit_VarLike 'a='>
                                                                          name: a
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {($ Id.VSub_DollarName p)}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: 
                                                                    <Id.ControlFlow_Continue 
continue
                                                                    >
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<Id.Lit_Star '*'>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Case
                                                                  case_kw: <Id.KW_Case case>
                                                                  to_match: 
                                                                    (case_arg.Word
                                                                      w: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
gotlib
                                                                          )
                                                                        }
                                                                    )
                                                                  arms_start: <Id.KW_In in>
                                                                  arms: [
                                                                    (CaseArm
                                                                      left: <Id.Lit_Star '*'>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [
                                                                            {<Id.Lit_Star '*'> 
                                                                              (DQ <' '> 
                                                                                ($ 
Id.VSub_DollarName l
                                                                                ) <' '>
                                                                              ) <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: [
                                                                        (command.ControlFlow
                                                                          keyword: 
                                                                            <
Id.ControlFlow_Continue continue
                                                                            >
                                                                        )
                                                                      ]
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                  ]
                                                                  arms_end: <Id.KW_Esac esac>
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName a)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <Id.VSub_DollarName '$p'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{($ Id.VSub_DollarName p)}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'a='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'a='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: <Id.Lit_VarLike 'a='>
                                                                          name: a
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName a) <' '> ($ Id.VSub_DollarName l)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.If
                                                                  if_kw: <Id.KW_If if>
                                                                  arms: [
                                                                    (IfArm
                                                                      keyword: <Id.KW_If if>
                                                                      cond: 
                                                                        (condition.Shell
                                                                          commands: [
                                                                            (command.Simple
                                                                              blame_tok: <compile>
                                                                              more_env: []
                                                                              words: [
                                                                                {<compile>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName cc
                                                                                  )
                                                                                }
                                                                                {<-o>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.exe>
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.c>
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName a
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_LessAnd '<&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 0
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nullin
                                                                                      )
                                                                                    }
                                                                                )
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_GreatAnd '>&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nullout
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                        )
                                                                      then_kw: <Id.KW_Then then>
                                                                      action: [
                                                                        (command.Simple
                                                                          blame_tok: <success>
                                                                          more_env: []
                                                                          words: [{<success>}]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'gotlib='
                                                                            >
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'gotlib='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'gotlib='
                                                                                    >
                                                                                  name: gotlib
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName gotlib
                                                                                    ) <' + '> ($ Id.VSub_DollarName p)
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 'lib='>
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'lib='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'lib='
                                                                                    >
                                                                                  name: lib
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName p
                                                                                    ) <' '> ($ Id.VSub_DollarName lib)
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ShAssignment
                                                                          left: <Id.Lit_VarLike 'e='>
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 'e='>
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  name: e
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<0>}
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ControlFlow
                                                                          keyword: 
                                                                            <Id.ControlFlow_Break 
break
                                                                            >
                                                                        )
                                                                      ]
                                                                      spids: [18048 18071]
                                                                    )
                                                                  ]
                                                                  else_action: []
                                                                  fi_kw: <Id.KW_Fi fi>
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.KW_Done done>
                                                    )
                                                  redirects: []
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName e)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <1>
                                                      pattern: (pat.Words words:[{<1>}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <failure>
                                                          more_env: []
                                                          words: [{<failure>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'gotlib='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'gotlib='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'gotlib='>
                                                                  name: gotlib
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName gotlib) 
                                                                    <' - '> ($ Id.VSub_DollarName p)
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'y='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'y='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'y='>
                                                      name: y
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [x]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName p)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <bsh>
                                                          pattern: (pat.Words words:[{<bsh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {<X> 
                                                                                    ($ 
Id.VSub_DollarName x
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {(SQ <'s,X-l,,'>)}
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [{<eval>} {(SQ <'c=${x#-l}'>)}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName c)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_> 
                                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {(SQ )}
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName c
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,.*[\\\\/],,'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,\\.[^.]*$,,'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_],_,g'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
'/^lib./s,^lib,,'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName config)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {($ Id.VSub_DollarName e) 
                                                                      ($ Id.VSub_DollarName p)
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <0>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<0> <Id.Lit_Star '*'> 
                                                                          (SQ <' '>) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              (DQ <' '> 
                                                                                ($ 
Id.VSub_DollarName gotlib
                                                                                ) <' '>
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> (DQ <' '> ($ Id.VSub_DollarName x) <' '>) <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'can='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'can='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'can='
                                                                                        >
                                                                                      name: can
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName can
                                                                                        ) ($ Id.VSub_DollarName cansep) <'#define _LIB_'> ($ Id.VSub_DollarName c) <'\t1\t/* '> 
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        ) <' is a library */'>
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'nan='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'nan='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'nan='
                                                                                        >
                                                                                      name: nan
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName nan
                                                                                        ) (${ Id.VSub_Name cansep) <_LIB_> ($ Id.VSub_DollarName c) <'=1'>
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'cansep='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'cansep='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'cansep='
                                                                                        >
                                                                                      name: cansep
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nl
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {<_LIB_> 
                                                                                  ($ 
Id.VSub_DollarName c
                                                                                  ) <Id.Lit_Equals '='> <1>
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <ksh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<ksh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <typeset>
                                                                      more_env: []
                                                                      words: [
                                                                        {<typeset>}
                                                                        {<-u>}
                                                                        {<Id.Lit_VarLike 'u='> 
                                                                          ($ Id.VSub_DollarName c)
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'u='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'u='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'u='>
                                                                              name: u
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <echo>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<echo>}
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName c
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <tr>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<tr>}
                                                                                          {
                                                                                            <
abcdefghijklmnopqrstuvwxyz
                                                                                            >
                                                                                          }
                                                                                          {
                                                                                            <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                            >
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName u)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName e)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <0>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<0> <Id.Lit_Star '*'> 
                                                                          (SQ <' '>) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              (DQ <' '> 
                                                                                ($ 
Id.VSub_DollarName gotlib
                                                                                ) <' '>
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> (DQ <' '> ($ Id.VSub_DollarName x) <' '>) <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'can='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'can='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'can='
                                                                                        >
                                                                                      name: can
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName can
                                                                                        ) ($ Id.VSub_DollarName cansep) <'#define HAVE_'> (${ Id.VSub_Name c) <'_LIB\t1\t/* '> 
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        ) <' is a library */'>
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'nan='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'nan='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'nan='
                                                                                        >
                                                                                      name: nan
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName nan
                                                                                        ) (${ Id.VSub_Name cansep) <HAVE_> (${ Id.VSub_Name c) <'_LIB=1'>
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'cansep='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'cansep='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'cansep='
                                                                                        >
                                                                                      name: cansep
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nl
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {<HAVE_> 
                                                                                  (${ Id.VSub_Name c) <Id.Lit_VarLike '_LIB='> <1>
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'y='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'y='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'y='>
                                                              name: y
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(${ Id.VSub_Name y) 
                                                              <Id.Lit_Underscore _> ($ Id.VSub_DollarName c)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName config)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<_LIB> (${ Id.VSub_Name y)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <1>
                                                  pattern: (pat.Words words:[{<1>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE> (${ Id.VSub_Name y) <_LIB>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> (SQ <' '>) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'q='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'q='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'q='>
                                                              name: q
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'a library group'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'q='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'q='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'q='>
                                                              name: q
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'a library'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName e)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'can='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'can='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'can='>
                                                              name: can
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName can) 
                                                                ($ Id.VSub_DollarName cansep) <'#define '> ($ Id.VSub_DollarName c) <'\t1\t/* '> ($ Id.VSub_DollarName p) <' is '> 
                                                                ($ Id.VSub_DollarName q) <' */'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'nan='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'nan='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'nan='>
                                                              name: nan
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName nan) 
                                                                ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'=1'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'cansep='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'cansep='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'cansep='>
                                                              name: cansep
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName nl)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {($ Id.VSub_DollarName c) <Id.Lit_Equals '='> 
                                                          <1>
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName hit)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <1>
                                                  pattern: (pat.Words words:[{<1>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {($ Id.VSub_DollarName all) 
                                                              ($ Id.VSub_DollarName config) ($ Id.VSub_DollarName undef)
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <1> 
                                                                  <Id.Lit_QMark '?'>
                                                                }
                                                                {<Id.Lit_QMark '?'> 
                                                                  <Id.Lit_QMark '?'> <1>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'can='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'can='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'can='>
                                                                      name: can
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName can) 
                                                                        ($ Id.VSub_DollarName cansep) <'#undef\t'> ($ Id.VSub_DollarName c) <'\t\t/* '> ($ Id.VSub_DollarName p) <' is not '> 
                                                                        ($ Id.VSub_DollarName q) <' */'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'nan='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'nan='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'nan='>
                                                                      name: nan
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName nan) 
                                                                        ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'='>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'cansep='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'cansep='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'cansep='>
                                                                      name: cansep
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName nl)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<1> <Id.Lit_QMark '?'> 
                                                                  <Id.Lit_QMark '?'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'can='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'can='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'can='>
                                                                      name: can
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName can) 
                                                                        ($ Id.VSub_DollarName cansep) <'#define '> ($ Id.VSub_DollarName c) <'\t0\t/* '> ($ Id.VSub_DollarName p) <' is not '> 
                                                                        ($ Id.VSub_DollarName q) <' */'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'nan='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'nan='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'nan='>
                                                                      name: nan
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName nan) 
                                                                        ($ Id.VSub_DollarName cansep) ($ Id.VSub_DollarName c) <'=0'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'cansep='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'cansep='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'cansep='>
                                                                      name: cansep
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName nl)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {($ Id.VSub_DollarName c) <Id.Lit_Equals '='> 
                                                          <0>
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <ref>
                          pattern: (pat.Words words:[{<ref>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deflib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deflib='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deflib='> name:deflib)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName deflib) <' '> 
                                        ($ Id.VSub_DollarName lib)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'defhdr='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'defhdr='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'defhdr='> name:defhdr)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName defhdr) <' '> 
                                        ($ Id.VSub_DollarName hdr)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {(DQ <' ,'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <bash>
                          pattern: (pat.Words words:[{<bash>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'op='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'op='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op='> name:op)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName op)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName arg)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'op='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName op) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'arg='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName ifs)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'x='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'x='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [o]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName op)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <def>
                                  pattern: (pat.Words words:[{<def>} {<default>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'x='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'x='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName x) 
                                                <' cmd dat hdr key lib mth sys typ'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'x='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'x='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName x) <' '> 
                                                ($ Id.VSub_DollarName o)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'result='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'result='> name:result)
                          op: assign_op.Equal
                          rhs: {<UNKNOWN>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [o]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName x)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [a]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName arg)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'c='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'c='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <.> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\\\'>
                                                    ch: '\\'
                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <hdr>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<hdr>} {<lcl>} {<nxt>} {<pth>} {<sys>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName a)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName x)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <.lcl>}
                                                                {<Id.Lit_Star '*'> <.nxt>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <sys>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<sys>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<'sys/'> 
                                                                              ($ Id.VSub_DollarName x)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <bsh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<bsh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (CommandSub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (command.Pipeline
                                                                                children: [
                                                                                  (command.Simple
                                                                                    blame_tok: <echo>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<echo>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                  (command.Simple
                                                                                    blame_tok: <sed>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<sed>}
                                                                                      {
                                                                                        (SQ 
                                                                                          <
's,\\(.*\\)\\.\\([^.]*\\),x=\\1 o=\\2,'
                                                                                          >
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                ]
                                                                                ops: [<Id.Op_Pipe _>]
                                                                              )
                                                                            right: 
                                                                              <Id.Backtick_Right '`'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'o='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'o='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'o='>
                                                                              name: o
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (BracedVarSub
                                                                                left: 
                                                                                  <
Id.Left_DollarBrace '${'
                                                                                  >
                                                                                token: 
                                                                                  <Id.VSub_Name x>
                                                                                var_name: x
                                                                                suffix_op: 
                                                                                  (suffix_op.Unary
                                                                                    op: 
                                                                                      <
Id.VOp1_DPound '##'
                                                                                      >
                                                                                    arg_word: 
                                                                                      {
                                                                                        <
Id.Lit_Other '*'
                                                                                        > <.>
                                                                                      }
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Right_DollarBrace '}'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (BracedVarSub
                                                                                left: 
                                                                                  <
Id.Left_DollarBrace '${'
                                                                                  >
                                                                                token: 
                                                                                  <Id.VSub_Name x>
                                                                                var_name: x
                                                                                suffix_op: 
                                                                                  (suffix_op.Unary
                                                                                    op: 
                                                                                      <
Id.VOp1_Percent '%'
                                                                                      >
                                                                                    arg_word: 
                                                                                      {<.> 
                                                                                        (${ 
Id.VSub_Name o
                                                                                        )
                                                                                      }
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Right_DollarBrace '}'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'v='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'v='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'v='>
                                                                      name: v
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName x)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName x)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <bsh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<bsh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (CommandSub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (command.Pipeline
                                                                                children: [
                                                                                  (command.Simple
                                                                                    blame_tok: <echo>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<echo>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                  (command.Simple
                                                                                    blame_tok: <sed>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<sed>}
                                                                                      {
                                                                                        (SQ 
                                                                                          <
's,\\(.*\\)[\\\\//]\\(.*\\),p=\\1 v=\\2,'
                                                                                          >
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                ]
                                                                                ops: [<Id.Op_Pipe _>]
                                                                              )
                                                                            right: 
                                                                              <Id.Backtick_Right '`'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {(SQ <'p=${x%/*}'>)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {(SQ <'v=${x##*/}'>)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <.> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <bsh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<bsh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (CommandSub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (command.Pipeline
                                                                                children: [
                                                                                  (command.Simple
                                                                                    blame_tok: <echo>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<echo>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                  (command.Simple
                                                                                    blame_tok: <sed>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<sed>}
                                                                                      {
                                                                                        (SQ 
                                                                                          <
's,\\(.*\\)\\.\\(.*\\),p=\\1 v=\\2,'
                                                                                          >
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                ]
                                                                                ops: [<Id.Op_Pipe _>]
                                                                              )
                                                                            right: 
                                                                              <Id.Backtick_Right '`'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {(SQ <'p=${x%.*}'>)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {(SQ <'v=${x##*.}'>)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'p='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'p='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'p='>
                                                                      name: p
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName o)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <lcl>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<lcl>} {<nxt>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName v) <.> 
                                                                      ($ Id.VSub_DollarName o)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName v)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <bsh>
                                                          pattern: (pat.Words words:[{<bsh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (command.Simple
                                                                            blame_tok: <echo>
                                                                            more_env: []
                                                                            words: [
                                                                              {<echo>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName a
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.Simple
                                                                            blame_tok: <sed>
                                                                            more_env: []
                                                                            words: [
                                                                              {<sed>}
                                                                              {<-e>}
                                                                              {(SQ <'s,.*[\\\\/],,'>)}
                                                                              {<-e>}
                                                                              {
                                                                                (SQ 
                                                                                  <
's/\\(.*\\)\\.\\(.*\\)/p=\\1 v=\\2/'
                                                                                  >
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        ]
                                                                        ops: [<Id.Op_Pipe _>]
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [{<eval>} {(SQ <'p=${a%.*}'>)}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {(SQ <'p=${p##*[\\\\/]}'>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [{<eval>} {(SQ <'v=${a##*.}'>)}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {(SQ <'v=${v##*[\\\\/]}'>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'f='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'f='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'f='>
                                                              name: f
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(${ Id.VSub_Name v)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'f='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'f='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'f='>
                                                              name: f
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(${ Id.VSub_Name p) <'/'> 
                                                              (${ Id.VSub_Name v)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <run>
                                                  pattern: (pat.Words words:[{<run>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'v='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'v='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'v='>
                                                              name: v
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName p)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p='>
                                                              name: p
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {<Id.Lit_Underscore _> 
                                                              (${ Id.VSub_Name v)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <mem>
                                                  pattern: (pat.Words words:[{<mem>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName p)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <.> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <bsh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<bsh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (CommandSub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (command.Pipeline
                                                                                children: [
                                                                                  (command.Simple
                                                                                    blame_tok: <echo>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<echo>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName p
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                  (command.Simple
                                                                                    blame_tok: <sed>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<sed>}
                                                                                      {
                                                                                        (SQ 
                                                                                          <
's/\\([^.]*\\)\\.\\(.*\\)/p=\\1 m=\\2/'
                                                                                          >
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                ]
                                                                                ops: [<Id.Op_Pipe _>]
                                                                              )
                                                                            right: 
                                                                              <Id.Backtick_Right '`'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {(SQ <'m=${p#*.}'>)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {(SQ <'p=${p%%.*}'>)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'v='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'v='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'v='>
                                                                      name: v
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(${ Id.VSub_Name m) <.> 
                                                                      (${ Id.VSub_Name v)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName config)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'm='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'm='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      name: m
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<Id.Lit_Underscore _> 
                                                                      (${ Id.VSub_Name v) <Id.Lit_Underscore _> (${ Id.VSub_Name p)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'm='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'm='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      name: m
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<Id.Lit_Underscore _> 
                                                                      (${ Id.VSub_Name v) <_in_> (${ Id.VSub_Name p)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName p)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'm='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'm='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      name: m
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<Id.Lit_Underscore _> 
                                                                      (${ Id.VSub_Name v)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'm='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'm='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      name: m
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<Id.Lit_Underscore _> 
                                                                      (${ Id.VSub_Name p) <Id.Lit_Underscore _> (${ Id.VSub_Name v)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'v='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'v='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'v='>
                                                      name: v
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName a)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'f='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'f='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'f='>
                                                      name: f
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName a)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'm='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'm='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'm='>
                                                      name: m
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Underscore _> (${ Id.VSub_Name v)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName c)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'c='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'c='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'c='>
                                                      name: c
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName v)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'M='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'M='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'M='> name:M)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName m)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <out>
                                          pattern: (pat.Words words:[{<out>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: (pat.Words words:[{<->}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'a='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'a='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'a='>
                                                              name: a
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<->}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'test='>
                                                              name: test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName a) <' '> 
                                                                ($ Id.VSub_DollarName test)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'a='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'a='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'a='>
                                                              name: a
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName idyes) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName m) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'i='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'i='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'i='>
                                                              name: i
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName idno) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> ($ Id.VSub_DollarName m) 
                                                                    <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'i='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      name: i
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<0>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName m)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> (SQ <'*'>)}
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'm='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'm='>
                                                                              name: m
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <echo>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<echo>}
                                                                                          {
                                                                                            (DQ 
                                                                                              ($ 
Id.VSub_DollarName m
                                                                                              )
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <sed>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<sed>}
                                                                                          {
                                                                                            (SQ 
                                                                                              <
's,\\*,_ptr,g'
                                                                                              >
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName m)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          <Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <'/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'i='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              name: i
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<0>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_> 
                                                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <is>
                                                                      more_env: []
                                                                      words: [
                                                                        {<is>}
                                                                        {<id>}
                                                                        {($ Id.VSub_DollarName m)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <copy>
                                                                      more_env: []
                                                                      words: [
                                                                        {<copy>}
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.c>
                                                                        }
                                                                        {
                                                                          (DQ <'int '> 
                                                                            ($ Id.VSub_DollarName m) <' = 0;'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <compile>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<compile>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName cc
                                                                                      )
                                                                                    }
                                                                                    {<-c>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.c>
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <success>
                                                                              more_env: []
                                                                              words: [{<success>} {<->}]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'idyes='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'idyes='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'idyes='
                                                                                        >
                                                                                      name: idyes
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName idyes
                                                                                        ) <' '> ($ Id.VSub_DollarName m)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'i='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      name: i
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<1>}
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [19997 20009]
                                                                        )
                                                                      ]
                                                                      else_kw: <Id.KW_Else else>
                                                                      else_action: [
                                                                        (command.Simple
                                                                          blame_tok: <failure>
                                                                          more_env: []
                                                                          words: [{<failure>} {<->}]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 'idno='>
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'idno='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'idno='
                                                                                    >
                                                                                  name: idno
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName idno
                                                                                    ) <' '> ($ Id.VSub_DollarName m)
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ShAssignment
                                                                          left: <Id.Lit_VarLike 'i='>
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'i='
                                                                                    >
                                                                                  name: i
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<0>}
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'i='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              name: i
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<1>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <dat>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<dat>}
                                                                        {<dfn>}
                                                                        {<key>}
                                                                        {<lib>}
                                                                        {<mac>}
                                                                        {<mth>}
                                                                        {<nos>}
                                                                        {<npt>}
                                                                        {<siz>}
                                                                        {<sym>}
                                                                        {<typ>}
                                                                        {<val>}
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Continue 
continue
                                                                        >
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName m)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                  <Id.KW_Bang '!'> <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'm='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'm='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'm='>
                                                      name: m
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {(DQ <X> ($ Id.VSub_DollarName m))}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <sed>
                                                                more_env: []
                                                                words: [
                                                                  {<sed>}
                                                                  {<-e>}
                                                                  {(SQ <'s,^.,,'>)}
                                                                  {<-e>}
                                                                  {
                                                                    (SQ 
                                                                      <
's,[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_],_,g'
                                                                      >
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName out)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$cur'>
                                          pattern: (pat.Words words:[{($ Id.VSub_DollarName cur)}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cur)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.VSub_DollarName '$a'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {($ Id.VSub_DollarName a)}
                                                        {($ Id.VSub_DollarName c)}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName cur)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <.>
                                                          pattern: (pat.Words words:[{<.>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName vers)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_QMark '?'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_QMark '?'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [{<echo>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ForEach
                                                                      keyword: <Id.KW_For for>
                                                                      iter_names: [api]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
vers
                                                                              )
                                                                            }
                                                                          ]
                                                                        )
                                                                      body: 
                                                                        (command.DoGroup
                                                                          left: <Id.KW_Do do>
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'API='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'API='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'API='
                                                                                        >
                                                                                      name: API
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Pipeline
                                                                                            children: [
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
echo
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
echo
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName api
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
tr
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
tr
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
abcdefghijklmnopqrstuvwxyz
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                                    >
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            ]
                                                                                            ops: [
                                                                                              <
Id.Op_Pipe _
                                                                                              >
                                                                                            ]
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  <Id.Lit_VarLike 
'ver='
                                                                                  > (SQ <'${'>) <ver_> (${ Id.VSub_Name api) (SQ <'}'>)
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ <'#define '> 
                                                                                    (${ Id.VSub_Name 
API
                                                                                    ) <'_VERSION\t'> (${ Id.VSub_Name ver)
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.KW_Done done>
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName apis)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_QMark '?'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_QMark '?'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ForEach
                                                                      keyword: <Id.KW_For for>
                                                                      iter_names: [api]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
apis
                                                                              )
                                                                            }
                                                                          ]
                                                                        )
                                                                      body: 
                                                                        (command.DoGroup
                                                                          left: <Id.KW_Do do>
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'API='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'API='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'API='
                                                                                        >
                                                                                      name: API
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Pipeline
                                                                                            children: [
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
echo
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
echo
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName api
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
tr
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
tr
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
abcdefghijklmnopqrstuvwxyz
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                                    >
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            ]
                                                                                            ops: [
                                                                                              <
Id.Op_Pipe _
                                                                                              >
                                                                                            ]
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ <'#define '> 
                                                                                    (${ Id.VSub_Name 
API
                                                                                    ) <'API(rel)\t( _BLD_'> (${ Id.VSub_Name api) <' || !_API_'> (${ Id.VSub_Name api) <' || _API_'> 
                                                                                    (${ Id.VSub_Name 
api
                                                                                    ) <' >= rel )'>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'map='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'map='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'map='
                                                                                        >
                                                                                      name: map
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word__Empty)
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'sep='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'sep='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'sep='
                                                                                        >
                                                                                      name: sep
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word__Empty)
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  <Id.Lit_VarLike 
'syms='
                                                                                  > (SQ <'"${'>) <api_sym_> (${ Id.VSub_Name api) (SQ <'}"'>)
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <set>
                                                                              more_env: []
                                                                              words: [
                                                                                {<set>}
                                                                                {<x>}
                                                                                {<x>}
                                                                                {
                                                                                  (CommandSub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (command.Pipeline
                                                                                        children: [
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <echo>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              }
                                                                                              {
                                                                                                (DQ 
                                                                                                  ($ 
Id.VSub_DollarName syms
                                                                                                  )
                                                                                                )
                                                                                              }
                                                                                            ]
                                                                                            redirects: []
                                                                                            do_fork: 
T
                                                                                          )
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <sort>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {
                                                                                                <
sort
                                                                                                >
                                                                                              }
                                                                                              {<-t> 
                                                                                                <
Id.Lit_Colon ':'
                                                                                                >
                                                                                              }
                                                                                              {<-u>}
                                                                                              {<-k>}
                                                                                              {<1> 
                                                                                                <
Id.Lit_Comma ','
                                                                                                > <1>
                                                                                              }
                                                                                              {<-k>}
                                                                                              {<2> 
                                                                                                <
Id.Lit_Comma ','
                                                                                                > <2nr>
                                                                                              }
                                                                                            ]
                                                                                            redirects: [
                                                                                              (Redir
                                                                                                op: 
                                                                                                  <
Id.Redir_Great '2>'
                                                                                                  >
                                                                                                loc: 
                                                                                                  (redir_loc.Fd
                                                                                                    fd: 
2
                                                                                                  )
                                                                                                arg: 
                                                                                                  {
                                                                                                    <
'/dev/null'
                                                                                                    >
                                                                                                  }
                                                                                              )
                                                                                            ]
                                                                                            do_fork: 
T
                                                                                          )
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <sed>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {<sed>}
                                                                                              {
                                                                                                (SQ 
                                                                                                  <
's/:/ /'
                                                                                                  >
                                                                                                )
                                                                                              }
                                                                                            ]
                                                                                            redirects: []
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        ]
                                                                                        ops: [
                                                                                          <
Id.Op_Pipe _
                                                                                          >
                                                                                          <
Id.Op_Pipe _
                                                                                          >
                                                                                        ]
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_Pound '#'
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <2>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<2>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <set>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<set>}
                                                                                        {<x>}
                                                                                        {<x>}
                                                                                        {
                                                                                          (CommandSub
                                                                                            left_token: 
                                                                                              <
Id.Left_Backtick '`'
                                                                                              >
                                                                                            child: 
                                                                                              (command.Pipeline
                                                                                                children: [
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
echo
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
echo
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (DQ 
                                                                                                          ($ 
Id.VSub_DollarName syms
                                                                                                          )
                                                                                                        )
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
sort
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
sort
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-t
                                                                                                        > <Id.Lit_Colon ':'>
                                                                                                      }
                                                                                                      {
                                                                                                        <
-u
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
Id.Lit_Other '+'
                                                                                                        > <0>
                                                                                                      }
                                                                                                      {
                                                                                                        <
-1
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
Id.Lit_Other '+'
                                                                                                        > <1>
                                                                                                      }
                                                                                                      {
                                                                                                        <
-2nr
                                                                                                        >
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: [
                                                                                                      (Redir
                                                                                                        op: 
                                                                                                          <
Id.Redir_Great '2>'
                                                                                                          >
                                                                                                        loc: 
                                                                                                          (redir_loc.Fd
                                                                                                            fd: 
2
                                                                                                          )
                                                                                                        arg: 
                                                                                                          {
                                                                                                            <
'/dev/null'
                                                                                                            >
                                                                                                          }
                                                                                                      )
                                                                                                    ]
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
sed
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
sed
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (SQ 
                                                                                                          <
's/:/ /'
                                                                                                          >
                                                                                                        )
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                ]
                                                                                                ops: [
                                                                                                  <
Id.Op_Pipe _
                                                                                                  >
                                                                                                  <
Id.Op_Pipe _
                                                                                                  >
                                                                                                ]
                                                                                              )
                                                                                            right: 
                                                                                              <
Id.Backtick_Right '`'
                                                                                              >
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'sym='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'sym='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'sym='
                                                                                        >
                                                                                      name: sym
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word__Empty)
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.WhileUntil
                                                                              keyword: 
                                                                                <Id.KW_While while>
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.Lit_Colon ':'
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Colon ':'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  left: <Id.KW_Do do>
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <shift>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<shift>}
                                                                                        {<2>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_Pound '#'
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_LBracket '['
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_LBracket '['
                                                                                                  > <01> <Id.Lit_RBracket ']'>
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Break break
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'prv='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'prv='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'prv='
                                                                                                >
                                                                                              name: 
prv
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName sym
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'sym='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'sym='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'sym='
                                                                                                >
                                                                                              name: 
sym
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_Number 1
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'rel='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'rel='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'rel='
                                                                                                >
                                                                                              name: 
rel
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_Number 2
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName prv
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.VSub_DollarName '$sym'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName sym
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
'#elif _API_'
                                                                                                    > (${ Id.VSub_Name api) <' >= '> ($ Id.VSub_DollarName rel)
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Case
                                                                                              case_kw: 
                                                                                                <
Id.KW_Case case
                                                                                                >
                                                                                              to_match: 
                                                                                                (case_arg.Word
                                                                                                  w: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName prv
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              arms_start: 
                                                                                                <
Id.KW_In in
                                                                                                >
                                                                                              arms: [
                                                                                                (CaseArm
                                                                                                  left: 
                                                                                                    <
Id.Left_SingleQuote '\''
                                                                                                    >
                                                                                                  pattern: 
                                                                                                    (pat.Words
                                                                                                      words: [{(SQ )}]
                                                                                                    )
                                                                                                  middle: 
                                                                                                    <
Id.Right_CasePat _
                                                                                                    >
                                                                                                  action: [
                                                                                                    (command.Simple
                                                                                                      blame_tok: 
                                                                                                        <
echo
                                                                                                        >
                                                                                                      more_env: []
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
echo
                                                                                                          >
                                                                                                        }
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                      do_fork: 
T
                                                                                                    )
                                                                                                    (command.Simple
                                                                                                      blame_tok: 
                                                                                                        <
echo
                                                                                                        >
                                                                                                      more_env: []
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
echo
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          (DQ 
                                                                                                            <
'#if !defined(_API_'
                                                                                                            > (${ Id.VSub_Name api) <') && defined(_API_DEFAULT)'>
                                                                                                          )
                                                                                                        }
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                      do_fork: 
T
                                                                                                    )
                                                                                                    (command.Simple
                                                                                                      blame_tok: 
                                                                                                        <
echo
                                                                                                        >
                                                                                                      more_env: []
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
echo
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          (DQ 
                                                                                                            <
'#define _API_'
                                                                                                            > (${ Id.VSub_Name api) <'\t_API_DEFAULT'>
                                                                                                          )
                                                                                                        }
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                      do_fork: 
T
                                                                                                    )
                                                                                                    (command.Simple
                                                                                                      blame_tok: 
                                                                                                        <
echo
                                                                                                        >
                                                                                                      more_env: []
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
echo
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          (DQ 
                                                                                                            <
'#endif'
                                                                                                            >
                                                                                                          )
                                                                                                        }
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                      do_fork: 
T
                                                                                                    )
                                                                                                  ]
                                                                                                  right: 
                                                                                                    <
Id.Op_DSemi _
                                                                                                    >
                                                                                                )
                                                                                                (CaseArm
                                                                                                  left: 
                                                                                                    <
Id.Lit_Star '*'
                                                                                                    >
                                                                                                  pattern: 
                                                                                                    (pat.Words
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
Id.Lit_Star '*'
                                                                                                          >
                                                                                                        }
                                                                                                      ]
                                                                                                    )
                                                                                                  middle: 
                                                                                                    <
Id.Right_CasePat _
                                                                                                    >
                                                                                                  action: [
                                                                                                    (command.Simple
                                                                                                      blame_tok: 
                                                                                                        <
echo
                                                                                                        >
                                                                                                      more_env: []
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
echo
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          (DQ 
                                                                                                            <
'#endif'
                                                                                                            >
                                                                                                          )
                                                                                                        }
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                      do_fork: 
T
                                                                                                    )
                                                                                                  ]
                                                                                                  right: 
                                                                                                    <
Id.Op_DSemi _
                                                                                                    >
                                                                                                )
                                                                                              ]
                                                                                              arms_end: 
                                                                                                <
Id.KW_Esac esac
                                                                                                >
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
'#if '
                                                                                                    > (${ Id.VSub_Name API) <'API('> ($ Id.VSub_DollarName rel) <')'>
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <echo>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<echo>}
                                                                                        {
                                                                                          (DQ 
                                                                                            <
'#undef\t'
                                                                                            > (${ Id.VSub_Name sym)
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <echo>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<echo>}
                                                                                        {
                                                                                          (DQ 
                                                                                            <
'#define '
                                                                                            > (${ Id.VSub_Name sym) <'\t'> (${ Id.VSub_Name sym) <_> (${ Id.VSub_Name rel)
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'map='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'map='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'map='
                                                                                                >
                                                                                              name: 
map
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName map
                                                                                              ) ($ Id.VSub_DollarName sep) (${ Id.VSub_Name sym) <Id.Lit_Underscore _> (${ Id.VSub_Name rel)
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'sep='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'sep='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'sep='
                                                                                                >
                                                                                              name: 
sep
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (SQ 
                                                                                                <
' '
                                                                                                >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.KW_Done done>
                                                                                )
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {(DQ <'#endif'>)}
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [{<echo>}]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'#define _API_'
                                                                                    > (${ Id.VSub_Name api) <'_MAP\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                    ($ 
Id.VSub_DollarName map
                                                                                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.KW_Done done>
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [{<echo>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName iff)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_QMark '?'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_QMark '?'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [{<echo>} {(DQ <'#endif'>)}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName cur)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <->
                                                                  pattern: (pat.Words words:[{<->}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: []
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <exec>
                                                                      more_env: []
                                                                      words: [{<exec>}]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: {<'/dev/null'>}
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
cur
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <.h>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'x='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      name: x
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName cur
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'x='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      name: x
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName dir
                                                                                      ) <'/'> ($ Id.VSub_DollarName cur)
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
define
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <n>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<n>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <sed>
                                                                              more_env: []
                                                                              words: [
                                                                                {<sed>}
                                                                                {(SQ <'/^#/d'>)}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.h>
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.c>
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <sed>
                                                                              more_env: []
                                                                              words: [
                                                                                {<sed>}
                                                                                {(SQ <'/^#/d'>)}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName x
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.t>
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Subshell
                                                                              left: <Id.Op_LParen _>
                                                                              child: 
                                                                                (command.Simple
                                                                                  blame_tok: <proto>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<proto>}
                                                                                    {<-r>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName protoflags
                                                                                      )
                                                                                    }
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.h>
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              right: 
                                                                                <Id.Right_Subshell _>
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: {<'/dev/null'>}
                                                                                )
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_GreatAnd '2>&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 2
                                                                                    )
                                                                                  arg: {<1>}
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <sed>
                                                                              more_env: []
                                                                              words: [
                                                                                {<sed>}
                                                                                {
                                                                                  (SQ 
                                                                                    <
's,/\\*[^/]*\\*/, ,g'
                                                                                    >
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.h>
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.c>
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <sed>
                                                                              more_env: []
                                                                              words: [
                                                                                {<sed>}
                                                                                {
                                                                                  (SQ 
                                                                                    <
's,/\\*[^/]*\\*/, ,g'
                                                                                    >
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName x
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.t>
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Simple
                                                                                  blame_tok: <cmp>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<cmp>}
                                                                                    {<-s>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.c>
                                                                                    }
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.t>
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <rm>
                                                                              more_env: []
                                                                              words: [
                                                                                {<rm>}
                                                                                {<-f>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.h>
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName verbose
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <1>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<1>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <echo>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<echo>}
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName command
                                                                                            ) <': '> ($ Id.VSub_DollarName x) <': unchanged'>
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_GreatAnd '>&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 1
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName stderr
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [20956 20969]
                                                                        )
                                                                      ]
                                                                      else_kw: <Id.KW_Else else>
                                                                      else_action: [
                                                                        (command.Case
                                                                          case_kw: <Id.KW_Case case>
                                                                          to_match: 
                                                                            (case_arg.Word
                                                                              w: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName x
                                                                                  )
                                                                                }
                                                                            )
                                                                          arms_start: <Id.KW_In in>
                                                                          arms: [
                                                                            (CaseArm
                                                                              left: 
                                                                                <
Id.Left_DollarBrace '${'
                                                                                >
                                                                              pattern: 
                                                                                (pat.Words
                                                                                  words: [
                                                                                    {
                                                                                      (${ 
Id.VSub_Name dir
                                                                                      ) <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> 
                                                                                      <
Id.Lit_RBracket ']'
                                                                                      > ($ Id.VSub_DollarName cur)
                                                                                    }
                                                                                  ]
                                                                                )
                                                                              middle: 
                                                                                <Id.Right_CasePat _>
                                                                              action: [
                                                                                (command.AndOr
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {<-d>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName dir
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <mkdir>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<mkdir>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName dir
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Exit exit
                                                                                        >
                                                                                      arg_word: {<1>}
                                                                                    )
                                                                                  ]
                                                                                  ops: [
                                                                                    <Id.Op_DPipe _>
                                                                                    <Id.Op_DPipe _>
                                                                                  ]
                                                                                )
                                                                              ]
                                                                              right: <Id.Op_DSemi _>
                                                                            )
                                                                          ]
                                                                          arms_end: <Id.KW_Esac esac>
                                                                          redirects: []
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <mv>
                                                                          more_env: []
                                                                          words: [
                                                                            {<mv>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
tmp
                                                                              ) <.h>
                                                                            }
                                                                            {
                                                                              ($ Id.VSub_DollarName x)
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName out)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Other '+'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Other '+'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName status)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <1>
                                                                  pattern: (pat.Words words:[{<1>}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: []
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'status='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'status='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'status='
                                                                                >
                                                                              name: status
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<0>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Exit exit>
                                                              arg_word: 
                                                                {($ Id.VSub_DollarName status)}
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <->
                                                          pattern: (pat.Words words:[{<->}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (DQ <'exec >&'> 
                                                                    ($ Id.VSub_DollarName stdout)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <exec>
                                                              more_env: []
                                                              words: [{<exec>}]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) <.h>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName out)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_DoubleQuote '"'>
                                                          pattern: (pat.Words words:[{(DQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName a)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                        {<Id.Lit_QMark '?'> 
                                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'cur='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'cur='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'cur='
                                                                                >
                                                                              name: cur
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName c)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'cur='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'cur='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'cur='
                                                                                >
                                                                              name: cur
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName a)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'cur='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'cur='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'cur='>
                                                                      name: cur
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName out)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName in)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_DoubleQuote '"'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{(DQ )} {<->} {<Id.Lit_Other '+'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <run>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<run>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <' from '> 
                                                                                ($ 
Id.VSub_DollarName a
                                                                                )
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (rhs_word__Empty)
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <' from '> 
                                                                        ($ Id.VSub_DollarName in)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName define)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <n>
                                                          pattern: (pat.Words words:[{<n>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_QMark '?'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ <'/* : : generated'> 
                                                                    ($ Id.VSub_DollarName x) <' by '> ($ Id.VSub_DollarName command) <' version '> ($ Id.VSub_DollarName version) <' : : */'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [x]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {($ Id.VSub_DollarName pragma)}
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#pragma '> 
                                                                            ($ Id.VSub_DollarName x)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName out)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_DoubleQuote '"'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {(DQ )}
                                                                        {<->}
                                                                        {<Id.Lit_Other '+'>}
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName m)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <.> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
shell
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <bsh>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<bsh>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  (CommandSub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (command.Pipeline
                                                                                        children: [
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <echo>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              }
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName in
                                                                                                )
                                                                                              }
                                                                                            ]
                                                                                            redirects: []
                                                                                            do_fork: 
T
                                                                                          )
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <sed>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {<sed>}
                                                                                              {<-e>}
                                                                                              {
                                                                                                (SQ 
                                                                                                  <
's,\\.,_,g'
                                                                                                  >
                                                                                                )
                                                                                              }
                                                                                              {<-e>}
                                                                                              {
                                                                                                (SQ 
                                                                                                  <
's/^/x=/'
                                                                                                  >
                                                                                                )
                                                                                              }
                                                                                            ]
                                                                                            redirects: []
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        ]
                                                                                        ops: [
                                                                                          <
Id.Op_Pipe _
                                                                                          >
                                                                                        ]
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'i='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      name: i
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName out
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'x='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      name: x
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      <
Id.Lit_Underscore _
                                                                                      >
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.WhileUntil
                                                                              keyword: 
                                                                                <Id.KW_While while>
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.Lit_Colon ':'
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Colon ':'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  left: <Id.KW_Do do>
                                                                                  children: [
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName i
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  > <.> <Id.Lit_Star '*'>
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
eval
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
eval
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (SQ 
                                                                                                    <
'x=$x${i%%.*}_'
                                                                                                    >
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
eval
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
eval
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (SQ 
                                                                                                    <
'i=${i#*.}'
                                                                                                    >
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'x='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'x='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'x='
                                                                                                        >
                                                                                                      name: 
x
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName x
                                                                                                      ) ($ Id.VSub_DollarName i)
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Break break
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.KW_Done done>
                                                                                )
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'x='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              name: x
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<Id.Lit_Underscore _> 
                                                                              ($ Id.VSub_DollarName 
out
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <iff>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<iff>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName M)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: 
                                                                            <Id.Left_DoubleQuote '"'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {(DQ )}
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <-> <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'iff='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'iff='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'iff='
                                                                                        >
                                                                                      name: iff
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (${ 
Id.VSub_Name m
                                                                                      ) <_H>
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
regress
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: 
                                                                            <Id.Left_SingleQuote 
'\''
                                                                            >
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{(SQ )}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName x
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          > <-> <Id.Lit_Star '*'>
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: []
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'x='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'x='
                                                                                                >
                                                                                              name: 
x
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Pipeline
                                                                                                    children: [
                                                                                                      (command.Simple
                                                                                                        blame_tok: 
                                                                                                          <
pwd
                                                                                                          >
                                                                                                        more_env: []
                                                                                                        words: [
                                                                                                          {
                                                                                                            <
pwd
                                                                                                            >
                                                                                                          }
                                                                                                        ]
                                                                                                        redirects: []
                                                                                                        do_fork: 
T
                                                                                                      )
                                                                                                      (command.Simple
                                                                                                        blame_tok: 
                                                                                                          <
sed
                                                                                                          >
                                                                                                        more_env: []
                                                                                                        words: [
                                                                                                          {
                                                                                                            <
sed
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            <
-e
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            (SQ 
                                                                                                              <
's,.*[\\\\/],,'
                                                                                                              >
                                                                                                            )
                                                                                                          }
                                                                                                          {
                                                                                                            <
-e
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            (SQ 
                                                                                                              <
's,\\..*,,'
                                                                                                              >
                                                                                                            )
                                                                                                          }
                                                                                                          {
                                                                                                            <
-e
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            (SQ 
                                                                                                              <
's,^lib,,'
                                                                                                              >
                                                                                                            )
                                                                                                          }
                                                                                                          {
                                                                                                            <
-e
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            (SQ 
                                                                                                              <
's,^,'
                                                                                                              >
                                                                                                            ) (${ Id.VSub_Name x) <Id.Lit_Underscore _> (SQ <','>)
                                                                                                          }
                                                                                                          {
                                                                                                            <
-e
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            (SQ 
                                                                                                              <
's,[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_],_,g'
                                                                                                              >
                                                                                                            )
                                                                                                          }
                                                                                                        ]
                                                                                                        redirects: []
                                                                                                        do_fork: 
T
                                                                                                      )
                                                                                                    ]
                                                                                                    ops: [
                                                                                                      <
Id.Op_Pipe _
                                                                                                      >
                                                                                                    ]
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName x
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  > <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <Id.Lit_Underscore _> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: []
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'x='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'x='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'x='
                                                                                                        >
                                                                                                      name: 
x
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      <
Id.Lit_Underscore _
                                                                                                      > ($ Id.VSub_Dollar '$')
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'iff='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'iff='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'iff='
                                                                                                >
                                                                                              name: 
iff
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {<_def> 
                                                                                              (${ 
Id.VSub_Name x
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName x
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          > <-> <Id.Lit_Star '*'>
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: []
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'iff='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'iff='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'iff='
                                                                                                >
                                                                                              name: 
iff
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              <
_REGRESS
                                                                                              >
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName iff)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_QMark '?'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_QMark '?'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#ifndef '> 
                                                                            ($ Id.VSub_DollarName iff)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            ($ Id.VSub_DollarName iff) <'\t1'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName can)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName define)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <1>
                                                  pattern: (pat.Words words:[{<1>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName can))}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <n>
                                                  pattern: (pat.Words words:[{<n>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName nan))}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'can='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'can='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'can='>
                                                      name: can
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'nan='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'nan='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'nan='>
                                                      name: nan
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'cansep='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cansep='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cansep='>
                                                      name: cansep
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'pre='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'pre='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'pre='>
                                              name: pre
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'inc='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'inc='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'inc='>
                                              name: inc
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [x]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {($ Id.VSub_DollarName defhdr)}
                                            {<->}
                                            {($ Id.VSub_DollarName hdr)}
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: (pat.Words words:[{<->}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName pre)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName v)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <.> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [x]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName v
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {(SQ <'s,\\., ,g'>)}
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'pre='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'pre='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'pre='
                                                                                >
                                                                              name: pre
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName pre
                                                                                ) <'\n'> <'#undef\t'> ($ Id.VSub_DollarName x)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <siz>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<siz>} {<typ>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName v)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <char>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<char>}
                                                                                {<short>}
                                                                                {<int>}
                                                                                {<long>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'pre='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'pre='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'pre='
                                                                                        >
                                                                                      name: pre
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        <'#undef\t'> ($ Id.VSub_DollarName v)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'pre='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'pre='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'pre='
                                                                                >
                                                                              name: pre
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <'#undef\t'> 
                                                                                ($ 
Id.VSub_DollarName v
                                                                                )
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_Star '*'> <.h>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <bsh>
                                                          pattern: (pat.Words words:[{<bsh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Pipeline
                                                                        children: [
                                                                          (command.Simple
                                                                            blame_tok: <echo>
                                                                            more_env: []
                                                                            words: [
                                                                              {<echo>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName x
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.Simple
                                                                            blame_tok: <sed>
                                                                            more_env: []
                                                                            words: [
                                                                              {<sed>}
                                                                              {<-e>}
                                                                              {
                                                                                (SQ 
                                                                                  <
's,^\\([^\\\\/]*\\).*[\\\\/]\\([^\\\\/]*\\)$,\\1_\\2,'
                                                                                  >
                                                                                )
                                                                              }
                                                                              {<-e>}
                                                                              {(SQ <'s/\\..*//'>)}
                                                                              {<-e>}
                                                                              {(SQ <'s/^/c=/'>)}
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        ]
                                                                        ops: [<Id.Op_Pipe _>]
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {(SQ <'c=${x##*[\\\\/]}'>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [{<eval>} {(SQ <'c=${c%%.*}'>)}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName x)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <'/'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (SQ 
                                                                            <
'c=${x%%[\\\\/]*}_${c}'
                                                                            >
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName config)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName x)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <'/'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<Id.Lit_Underscore _> 
                                                                              (${ Id.VSub_Name c)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<_hdr_> 
                                                                              (${ Id.VSub_Name c)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName shell)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <ksh>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<ksh>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <typeset>
                                                                      more_env: []
                                                                      words: [
                                                                        {<typeset>}
                                                                        {<-u>}
                                                                        {<Id.Lit_VarLike 'u='> 
                                                                          ($ Id.VSub_DollarName c)
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'u='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'u='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'u='>
                                                                              name: u
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <echo>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<echo>}
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName c
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <tr>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<tr>}
                                                                                          {
                                                                                            <
abcdefghijklmnopqrstuvwxyz
                                                                                            >
                                                                                          }
                                                                                          {
                                                                                            <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                            >
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<HAVE_> (${ Id.VSub_Name u) <_H>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName puthdr) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> ($ Id.VSub_DollarName c) 
                                                                    <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'puthdr='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'puthdr='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'puthdr='>
                                                                      name: puthdr
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName puthdr) <' '> ($ Id.VSub_DollarName c)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'usr='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'usr='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'usr='>
                                                                      name: usr
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName usr) 
                                                                        ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName c) <' 1'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'inc='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'inc='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'inc='>
                                                              name: inc
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName inc) <'\n'> 
                                                                <'#include <'> ($ Id.VSub_DollarName x) <'>'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [x]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {($ Id.VSub_DollarName lib)}
                                            {($ Id.VSub_DollarName deflib)}
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName shell)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <ksh>
                                                  pattern: (pat.Words words:[{<ksh>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [{<eval>} {(SQ <'c=${x#-l}'>)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {<X> 
                                                                            ($ Id.VSub_DollarName x)
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {(SQ <'s,X-l,,'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName c)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                          <Id.KW_Bang '!'> <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_> <Id.Lit_RBracket ']'> 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {(SQ )}
                                                                          {($ Id.VSub_DollarName c)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {<-e>}
                                                                          {(SQ <'s,.*[\\\\/],,'>)}
                                                                          {<-e>}
                                                                          {(SQ <'s,\\.[^.]*$,,'>)}
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's,[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_],_,g'
                                                                              >
                                                                            )
                                                                          }
                                                                          {<-e>}
                                                                          {(SQ <'/^lib./s,^lib,,'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName config)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<_LIB_> (${ Id.VSub_Name c)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <1>
                                                  pattern: (pat.Words words:[{<1>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <ksh>
                                                          pattern: (pat.Words words:[{<ksh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <typeset>
                                                              more_env: []
                                                              words: [
                                                                {<typeset>}
                                                                {<-u>}
                                                                {<Id.Lit_VarLike 'u='> 
                                                                  ($ Id.VSub_DollarName c)
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'u='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'u='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'u='>
                                                                      name: u
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName c
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <tr>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<tr>}
                                                                                  {
                                                                                    <
abcdefghijklmnopqrstuvwxyz
                                                                                    >
                                                                                  }
                                                                                  {
                                                                                    <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                    >
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE_> (${ Id.VSub_Name u) <_LIB>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName putlib) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName c) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'putlib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'putlib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'putlib='>
                                                              name: putlib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName putlib) <' '> 
                                                                ($ Id.VSub_DollarName c)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'usr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'usr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'usr='>
                                                              name: usr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName usr) 
                                                                ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName c) <' 1'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName config) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName def)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0> <Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <tst>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<tst>} {<Id.KW_Var var>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {<Id.Lit_Underscore _> 
                                                              (${ Id.VSub_Name o) (${ Id.VSub_Name m)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <tst>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<tst>} {<Id.KW_Var var>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(${ Id.VSub_Name v)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName shell)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <ksh>
                                                  pattern: (pat.Words words:[{<ksh>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <typeset>
                                                      more_env: []
                                                      words: [
                                                        {<typeset>}
                                                        {<-u>}
                                                        {<Id.Lit_VarLike 'u='> 
                                                          ($ Id.VSub_DollarName m)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'u='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'u='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'u='>
                                                              name: u
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {($ Id.VSub_DollarName m)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <tr>
                                                                        more_env: []
                                                                        words: [
                                                                          {<tr>}
                                                                          {
                                                                            <
abcdefghijklmnopqrstuvwxyz
                                                                            >
                                                                          }
                                                                          {
                                                                            <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                            >
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <tst>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<tst>} {<Id.KW_Var var>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName m)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.VSub_DollarName '$u'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{($ Id.VSub_DollarName u)}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName m)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <hdr_>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<hdr_> <Id.Lit_Star '*'>}
                                                                        {<lib_> <Id.Lit_Star '*'>}
                                                                        {<sys_> <Id.Lit_Star '*'>}
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
shell
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <ksh>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<ksh>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'u='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'u='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'u='
                                                                                        >
                                                                                      name: u
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (BracedVarSub
                                                                                        left: 
                                                                                          <
Id.Left_DollarBrace '${'
                                                                                          >
                                                                                        token: 
                                                                                          <
Id.VSub_Name u
                                                                                          >
                                                                                        var_name: u
                                                                                        suffix_op: 
                                                                                          (suffix_op.Unary
                                                                                            op: 
                                                                                              <
Id.VOp1_Pound '#'
                                                                                              >
                                                                                            arg_word: 
                                                                                              {
                                                                                                <
Id.Lit_Other '?'
                                                                                                > <Id.Lit_Other '?'> <Id.Lit_Other '?'> <Id.Lit_Other '?'>
                                                                                              }
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Right_DollarBrace '}'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'u='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'u='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'u='
                                                                                        >
                                                                                      name: u
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Pipeline
                                                                                            children: [
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
echo
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
echo
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName u
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
sed
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
sed
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (SQ 
                                                                                                      <
's/....//'
                                                                                                      >
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            ]
                                                                                            ops: [
                                                                                              <
Id.Op_Pipe _
                                                                                              >
                                                                                            ]
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'm='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'm='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      name: m
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<HAVE_> (${ Id.VSub_Name u)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <dat>
                                                  pattern: (pat.Words words:[{<dat>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE> (${ Id.VSub_Name u) <_DATA>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <hdr>
                                                  pattern: (pat.Words words:[{<hdr>} {<lcl>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE> (${ Id.VSub_Name u) <_H>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <key>
                                                  pattern: (pat.Words words:[{<key>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {<HAVE> (${ Id.VSub_Name u) <_RESERVED>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <mth>
                                                  pattern: (pat.Words words:[{<mth>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE> (${ Id.VSub_Name u) <_MATH>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <npt>
                                                  pattern: (pat.Words words:[{<npt>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE> (${ Id.VSub_Name u) <_DECL>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <pth>
                                                  pattern: (pat.Words words:[{<pth>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(${ Id.VSub_Name u) <_PATH>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName shell)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <ksh>
                                                          pattern: (pat.Words words:[{<ksh>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'm='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'm='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      name: m
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (BracedVarSub
                                                                        left: 
                                                                          <Id.Left_DollarBrace '${'>
                                                                        token: <Id.VSub_Name m>
                                                                        var_name: m
                                                                        suffix_op: 
                                                                          (suffix_op.Unary
                                                                            op: <Id.VOp1_Pound '#'>
                                                                            arg_word: {<_>}
                                                                          )
                                                                        right: 
                                                                          <Id.Right_DollarBrace '}'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'm='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'm='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'm='>
                                                                      name: m
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName m
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {(SQ <'s,^_,,'>)}
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <nxt>
                                                  pattern: (pat.Words words:[{<nxt>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE> (${ Id.VSub_Name u) <_NEXT>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <siz>
                                                  pattern: (pat.Words words:[{<siz>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<SIZEOF> (${ Id.VSub_Name u)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <sys>
                                                  pattern: (pat.Words words:[{<sys>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE_SYS> (${ Id.VSub_Name u) <_H>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<HAVE> (${ Id.VSub_Name u)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'm='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'm='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'm='>
                                                      name: m
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName def)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'M='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'M='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'M='>
                                                      name: M
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName m)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName src)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName src)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.VSub_DollarName '$noext'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{($ Id.VSub_DollarName noext)}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'EXT='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'EXT='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'EXT='>
                                                              name: EXT
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'EXT='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'EXT='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'EXT='>
                                                              name: EXT
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName tst) <'\n'> 
                                                                ($ Id.VSub_DollarName ext)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <copy>
                                              more_env: []
                                              words: [
                                                {<copy>}
                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName std) <'\n'> 
                                                    ($ Id.VSub_DollarName EXT) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> ($ Id.VSub_DollarName src) 
                                                    <'\n'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'V='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'V='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'V='>
                                                      name: V
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'e='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'e='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'e='>
                                                      name: e
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [
                                                {<is>}
                                                {<tst>}
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name note>
                                                      var_name: note
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op: <Id.VTest_ColonHyphen _>
                                                          arg_word: {($ Id.VSub_DollarName run)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName run)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <cat>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<cat> <Id.Lit_Star '*'>}
                                                        {<nocat> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <copy>
                                                      more_env: []
                                                      words: [
                                                        {<copy>}
                                                        {<->}
                                                        {(DQ ($ Id.VSub_DollarName src))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <cross>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<cross> <Id.Lit_Star '*'>}
                                                        {<nocross> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <copy>
                                                      more_env: []
                                                      words: [
                                                        {<copy>}
                                                        {($ Id.VSub_DollarName tmp) <.sh>}
                                                        {(DQ ($ Id.VSub_DollarName src))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <chmod>
                                                      more_env: []
                                                      words: [
                                                        {<chmod>}
                                                        {<Id.Lit_Other '+'> <x>}
                                                        {($ Id.VSub_DollarName tmp) <.sh>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <execute>
                                                          more_env: []
                                                          words: [
                                                            {<execute>}
                                                            {($ Id.VSub_DollarName tmp) <.sh>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'e='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'e='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  name: e
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <run>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<run> <Id.Lit_Star '*'>}
                                                        {<norun> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Subshell
                                                          left: <Id.Op_LParen _>
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {(DQ ($ Id.VSub_DollarName src))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          right: <Id.Right_Subshell _>
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'e='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'e='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  name: e
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <mac>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<mac> <Id.Lit_Star '*'>}
                                                        {<nomac> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <compile>
                                                                  more_env: []
                                                                  words: [
                                                                    {<compile>}
                                                                    {($ Id.VSub_DollarName cc)}
                                                                    {<-E>}
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                  ]
                                                                  redirects: [
                                                                    (Redir
                                                                      op: <Id.Redir_LessAnd '<&'>
                                                                      loc: (redir_loc.Fd fd:0)
                                                                      arg: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
nullin
                                                                          )
                                                                        }
                                                                    )
                                                                    (Redir
                                                                      op: <Id.Redir_Great '>'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: 
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.i>
                                                                        }
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <sed>
                                                              more_env: []
                                                              words: [
                                                                {<sed>}
                                                                {<-e>}
                                                                {(SQ <'/<<[ \t]*".*"[ \t]*>>/!d'>)}
                                                                {<-e>}
                                                                {(SQ <'s/<<[ \t]*"//g'>)}
                                                                {<-e>}
                                                                {(SQ <'s/"[ \t]*>>//g'>)}
                                                                {($ Id.VSub_DollarName tmp) <.i>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [23233 23252]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'e='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'e='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  name: e
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <p>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<p> <Id.Lit_Star '*'>}
                                                        {<nop> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-DTEST> <Id.Lit_Equals '='> 
                                                              ($ Id.VSub_DollarName p)
                                                            }
                                                            {<-DID> <Id.Lit_Equals '='> 
                                                              ($ Id.VSub_DollarName v)
                                                            }
                                                            {<-E>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName nullout)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'e='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'e='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  name: e
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <c>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<c> <Id.Lit_Star '*'>}
                                                        {<noc> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-DTEST> <Id.Lit_Equals '='> 
                                                              ($ Id.VSub_DollarName p)
                                                            }
                                                            {<-DID> <Id.Lit_Equals '='> 
                                                              ($ Id.VSub_DollarName v)
                                                            }
                                                            {<-c>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName nullout)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'e='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'e='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  name: e
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName run)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <status>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<status> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'ccflags='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'ccflags='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'ccflags='>
                                                                      name: ccflags
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <s>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<s> <Id.Lit_Star '*'>}
                                                                {<nos> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
reallystatictest
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_SingleQuote '\''>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{(SQ )}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'reallystatictest='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'reallystatictest='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'reallystatictest='
                                                                                >
                                                                              name: reallystatictest
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<.>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> <'int main(){printf('>
                                                                          ) <hello> (DQ <');return(0);}'>)
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {(${ Id.VSub_Name tmp) 
                                                                              <s.c>
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <rm>
                                                                      more_env: []
                                                                      words: [
                                                                        {<rm>}
                                                                        {<-f>}
                                                                        {(${ Id.VSub_Name tmp) 
                                                                          <s.exe>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.AndOr
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <compile>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<compile>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName cc
                                                                                          )
                                                                                        }
                                                                                        {<-c>}
                                                                                        {
                                                                                          (${ 
Id.VSub_Name tmp
                                                                                          ) <s.c>
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_LessAnd '<&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 0
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullin
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_GreatAnd '>&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 1
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullout
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <compile>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<compile>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName cc
                                                                                          )
                                                                                        }
                                                                                        {<-o>}
                                                                                        {
                                                                                          (${ 
Id.VSub_Name tmp
                                                                                          ) <s.exe>
                                                                                        }
                                                                                        {
                                                                                          (${ 
Id.VSub_Name tmp
                                                                                          ) <s.o>
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_LessAnd '<&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 0
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullin
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_GreatAnd '>&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 1
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullout
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_Great '2>'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 2
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              (${ 
Id.VSub_Name tmp
                                                                                              ) <s.e>
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.VSub_DollarName '$executable'
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName executable
                                                                                          )
                                                                                        }
                                                                                        {
                                                                                          (${ 
Id.VSub_Name tmp
                                                                                          ) <s.exe>
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  ops: [
                                                                                    <Id.Op_DAmp _>
                                                                                    <Id.Op_DAmp _>
                                                                                  ]
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'e='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      name: e
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <wc>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {<wc>}
                                                                                              {<-l>}
                                                                                              {
                                                                                                (${ 
Id.VSub_Name tmp
                                                                                                ) <s.e>
                                                                                              }
                                                                                            ]
                                                                                            redirects: []
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {<set>}
                                                                                {<x>}
                                                                                {<x>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName binding
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.WhileUntil
                                                                              keyword: 
                                                                                <Id.KW_While while>
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.Lit_Colon ':'
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Colon ':'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  left: <Id.KW_Do do>
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <shift>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<shift>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <shift>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<shift>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_Pound '#'
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: <0>
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {<0>}
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Break break
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: <rm>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<rm>}
                                                                                        {<-f>}
                                                                                        {
                                                                                          (${ 
Id.VSub_Name tmp
                                                                                          ) <s.exe>
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.AndOr
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
compile
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              <
compile
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName cc
                                                                                              )
                                                                                            }
                                                                                            {<-o>}
                                                                                            {
                                                                                              (${ 
Id.VSub_Name tmp
                                                                                              ) <s.exe>
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_Number 1
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              (${ 
Id.VSub_Name tmp
                                                                                              ) <s.o>
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_LessAnd '<&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
0
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_GreatAnd '>&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
1
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullout
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '2>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
2
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  (${ 
Id.VSub_Name tmp
                                                                                                  ) <s.e>
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
Id.VSub_DollarName '$executable'
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName executable
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              (${ 
Id.VSub_Name tmp
                                                                                              ) <s.exe>
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.ControlFlow
                                                                                          keyword: 
                                                                                            <
Id.ControlFlow_Continue continue
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      ops: [
                                                                                        <Id.Op_DAmp 
_
                                                                                        >
                                                                                        <
Id.Op_DPipe _
                                                                                        >
                                                                                      ]
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
wc
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
wc
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-l
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (${ 
Id.VSub_Name tmp
                                                                                                        ) <s.e>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.VSub_DollarName '$e'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName e
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: []
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Continue continue
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'd='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'd='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'd='
                                                                                                >
                                                                                              name: 
d
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
ls
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
ls
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-s
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (${ 
Id.VSub_Name tmp
                                                                                                        ) <s.exe>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: <rm>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<rm>}
                                                                                        {<-f>}
                                                                                        {
                                                                                          (${ 
Id.VSub_Name tmp
                                                                                          ) <s.exe>
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.AndOr
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
compile
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              <
compile
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName cc
                                                                                              )
                                                                                            }
                                                                                            {<-o>}
                                                                                            {
                                                                                              (${ 
Id.VSub_Name tmp
                                                                                              ) <s.exe>
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_Number 2
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              (${ 
Id.VSub_Name tmp
                                                                                              ) <s.o>
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_LessAnd '<&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
0
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_GreatAnd '>&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
1
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullout
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '2>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
2
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  (${ 
Id.VSub_Name tmp
                                                                                                  ) <s.e>
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
Id.VSub_DollarName '$executable'
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName executable
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              (${ 
Id.VSub_Name tmp
                                                                                              ) <s.exe>
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.ControlFlow
                                                                                          keyword: 
                                                                                            <
Id.ControlFlow_Continue continue
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      ops: [
                                                                                        <Id.Op_DAmp 
_
                                                                                        >
                                                                                        <
Id.Op_DPipe _
                                                                                        >
                                                                                      ]
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
wc
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
wc
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-l
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (${ 
Id.VSub_Name tmp
                                                                                                        ) <s.e>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.VSub_DollarName '$e'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName e
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: []
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Continue continue
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
ls
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
ls
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-s
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (${ 
Id.VSub_Name tmp
                                                                                                        ) <s.exe>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.VSub_DollarName '$d'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName d
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: []
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'reallystatic='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'reallystatic='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'reallystatic='
                                                                                                        >
                                                                                                      name: 
reallystatic
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_Number 2
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
set
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
set
                                                                                                  >
                                                                                                }
                                                                                                {<x>}
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
shift
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
shift
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Break break
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.KW_Done done>
                                                                                )
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [23443 23504]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <rm>
                                                                      more_env: []
                                                                      words: [
                                                                        {<rm>}
                                                                        {<-f>}
                                                                        {(${ Id.VSub_Name tmp) <s.> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'ccflags='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'ccflags='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'ccflags='>
                                                                      name: ccflags
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
reallystatic
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'ccflags='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'ccflags='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'ccflags='>
                                                                      name: ccflags
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <set>
                                                      more_env: []
                                                      words: [{<set>} {<x>} {($ Id.VSub_DollarName mac)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'e='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'e='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'e='>
                                                              name: e
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.WhileUntil
                                                      keyword: <Id.KW_While while>
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Simple
                                                              blame_tok: <Id.Lit_Colon ':'>
                                                              more_env: []
                                                              words: [{<Id.Lit_Colon ':'>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                        )
                                                      body: 
                                                        (command.DoGroup
                                                          left: <Id.KW_Do do>
                                                          children: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'o='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'o='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'o='>
                                                                      name: o
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.WhileUntil
                                                              keyword: <Id.KW_While while>
                                                              cond: 
                                                                (condition.Shell
                                                                  commands: [
                                                                    (command.Simple
                                                                      blame_tok: <Id.Lit_Colon ':'>
                                                                      more_env: []
                                                                      words: [{<Id.Lit_Colon ':'>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: {($ Id.VSub_Pound '#')}
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <0>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<0>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Break break
                                                                                >
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: {($ Id.VSub_Number 1)}
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <->
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<->}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Break break
                                                                                >
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'o='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'o='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'o='>
                                                                              name: o
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName o
                                                                                ) <' '> ($ Id.VSub_Number 1)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <shift>
                                                                      more_env: []
                                                                      words: [{<shift>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <rm>
                                                              more_env: []
                                                              words: [
                                                                {<rm>}
                                                                {<-f>}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.AndOr
                                                                          children: [
                                                                            (command.Simple
                                                                              blame_tok: <compile>
                                                                              more_env: []
                                                                              words: [
                                                                                {<compile>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName cc
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName ccflags
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName o
                                                                                  )
                                                                                }
                                                                                {<-DTEST> 
                                                                                  <Id.Lit_Equals '='> ($ Id.VSub_DollarName p)
                                                                                }
                                                                                {<-DID> 
                                                                                  <Id.Lit_Equals '='> ($ Id.VSub_DollarName v)
                                                                                }
                                                                                {<-o>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.exe>
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.c>
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName lib
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName deflib
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_LessAnd '<&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 0
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nullin
                                                                                      )
                                                                                    }
                                                                                )
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_GreatAnd '>&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nullout
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$executable'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName executable
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.exe>
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          ops: [<Id.Op_DAmp _>]
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
run
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <status>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<status> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <execute>
                                                                              more_env: []
                                                                              words: [
                                                                                {<execute>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.exe>
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_LessAnd '<&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 0
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nullin
                                                                                      )
                                                                                    }
                                                                                )
                                                                                (Redir
                                                                                  op: 
                                                                                    <
Id.Redir_GreatAnd '>&'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName nullout
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'V='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'V='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'V='
                                                                                        >
                                                                                      name: V
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_QMark '?'
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName V
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <0>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<0>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'e='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'e='
                                                                                                >
                                                                                              name: 
e
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: {<1>}
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'e='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'e='
                                                                                                >
                                                                                              name: 
e
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: {<0>}
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Break break
                                                                                >
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: 
                                                                            <Id.Lit_ArrayLhsOpen 
'no['
                                                                            >
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {
                                                                                  <
Id.Lit_ArrayLhsOpen 'no['
                                                                                  > <ls> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_LBracket '['>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > <ls> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.ShAssignment
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  pairs: [
                                                                                    (AssignPair
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'e='
                                                                                            >
                                                                                          name: e
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: {<0>}
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                                (command.ControlFlow
                                                                                  keyword: 
                                                                                    <
Id.ControlFlow_Break break
                                                                                    >
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DAmp _>]
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <noo>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<noo> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <execute>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<execute>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.exe>
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_LessAnd '<&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 0
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullin
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.out>
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                                (command.ControlFlow
                                                                                  keyword: 
                                                                                    <
Id.ControlFlow_Break break
                                                                                    >
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DPipe _>]
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <o>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<o> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <execute>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<execute>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.exe>
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_LessAnd '<&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 0
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullin
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.out>
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                                (command.ShAssignment
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  pairs: [
                                                                                    (AssignPair
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'e='
                                                                                            >
                                                                                          name: e
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: {<0>}
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                                (command.ControlFlow
                                                                                  keyword: 
                                                                                    <
Id.ControlFlow_Break break
                                                                                    >
                                                                                )
                                                                              ]
                                                                              ops: [
                                                                                <Id.Op_DAmp _>
                                                                                <Id.Op_DAmp _>
                                                                              ]
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <no>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<no> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <execute>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<execute>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.exe>
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_LessAnd '<&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 0
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullin
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_GreatAnd '>&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullout
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                                (command.ControlFlow
                                                                                  keyword: 
                                                                                    <
Id.ControlFlow_Break break
                                                                                    >
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DPipe _>]
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <execute>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<execute>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.exe>
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_LessAnd '<&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 0
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullin
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_GreatAnd '>&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullout
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                                (command.ShAssignment
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  pairs: [
                                                                                    (AssignPair
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'e='
                                                                                            >
                                                                                          name: e
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: {<0>}
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                                (command.ControlFlow
                                                                                  keyword: 
                                                                                    <
Id.ControlFlow_Break break
                                                                                    >
                                                                                )
                                                                              ]
                                                                              ops: [
                                                                                <Id.Op_DAmp _>
                                                                                <Id.Op_DAmp _>
                                                                              ]
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [23939 23983]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Case
                                                                  case_kw: <Id.KW_Case case>
                                                                  to_match: 
                                                                    (case_arg.Word
                                                                      w: {($ Id.VSub_DollarName run)}
                                                                    )
                                                                  arms_start: <Id.KW_In in>
                                                                  arms: [
                                                                    (CaseArm
                                                                      left: 
                                                                        <Id.Lit_ArrayLhsOpen 'no['>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [
                                                                            {
                                                                              <Id.Lit_ArrayLhsOpen 
'no['
                                                                              > <els> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: [
                                                                        (command.AndOr
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'e='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      name: e
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<1>}
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Break break
                                                                                >
                                                                            )
                                                                          ]
                                                                          ops: [<Id.Op_DAmp _>]
                                                                        )
                                                                      ]
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                  ]
                                                                  arms_end: <Id.KW_Esac esac>
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_Pound '#')}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <0>
                                                                  pattern: (pat.Words words:[{<0>}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
run
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <no>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<no> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'e='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      name: e
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<0>}
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Break break>
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.KW_Done done>
                                                        )
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'o='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'o='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'o='>
                                                      name: o
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName run)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <no>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<no> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName e)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'e='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'e='>
                                                                      name: e
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'e='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'e='>
                                                                      name: e
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<0>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName run)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <o>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<o> <Id.Lit_Star '*'>}
                                                        {<noo> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName e)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <cat>
                                                              more_env: []
                                                              words: [
                                                                {<cat>}
                                                                {($ Id.VSub_DollarName tmp) <.out>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <rm>
                                                      more_env: []
                                                      words: [
                                                        {<rm>}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName tmp) <.out>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_DollarName e)}
                                                {($ Id.VSub_DollarName V)}
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name note>
                                                      var_name: note
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op: <Id.VTest_ColonHyphen _>
                                                          arg_word: 
                                                            {($ Id.VSub_DollarName run) 
                                                              <Id.Lit_BadBackslash '\\'> <' passed'>
                                                            }
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  )
                                                }
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name note>
                                                      var_name: note
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op: <Id.VTest_ColonHyphen _>
                                                          arg_word: {($ Id.VSub_DollarName run)}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    ) <' failed'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <dat>
                                          pattern: 
                                            (pat.Words
                                              words: [{<dat>} {<lib>} {<mth>} {<run>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName statictest)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'statictest='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'statictest='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'statictest='>
                                                              name: statictest
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<FoobaR>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <copy>
                                                      more_env: []
                                                      words: [
                                                        {<copy>}
                                                        {($ Id.VSub_DollarName tmp) <.c>}
                                                        {
                                                          (DQ <'\n'> ($ Id.VSub_DollarName tst) <'\n'> 
                                                            ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> <'_BEGIN_EXTERNS_\n'> 
                                                            <'extern int '> ($ Id.VSub_DollarName statictest) <';\n'> <'_END_EXTERNS_\n'> <'int main(){char* i = (char*)&'> 
                                                            ($ Id.VSub_DollarName statictest) <'; return ((unsigned int)i)^0xaaaa;}\n'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <rm>
                                                      more_env: []
                                                      words: [
                                                        {<rm>}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName tmp) <.exe>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <compile>
                                                                      more_env: []
                                                                      words: [
                                                                        {<compile>}
                                                                        {($ Id.VSub_DollarName cc)}
                                                                        {<-o>}
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.exe>
                                                                        }
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.c>
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_LessAnd '<&'>
                                                                          loc: (redir_loc.Fd fd:0)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
nullin
                                                                              )
                                                                            }
                                                                        )
                                                                        (Redir
                                                                          op: 
                                                                            <Id.Redir_GreatAnd '>&'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
nullout
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName 
'$executable'
                                                                        >
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
executable
                                                                          )
                                                                        }
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.exe>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _>]
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName static)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <.>
                                                                  pattern: (pat.Words words:[{<.>}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'static='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'static='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'static='
                                                                                >
                                                                              name: static
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (rhs_word__Empty)
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <copy>
                                                                      more_env: []
                                                                      words: [
                                                                        {<copy>}
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.c>
                                                                        }
                                                                        {
                                                                          (DQ <'\n'> 
                                                                            ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> <'int main(){printf('>
                                                                          ) <hello> (DQ <');return(0);}\n'>)
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <rm>
                                                                      more_env: []
                                                                      words: [
                                                                        {<rm>}
                                                                        {<-f>}
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.exe>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.AndOr
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <compile>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<compile>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName cc
                                                                                          )
                                                                                        }
                                                                                        {<-c>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.c>
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_LessAnd '<&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 0
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullin
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_GreatAnd '>&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 1
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullout
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <compile>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<compile>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName cc
                                                                                          )
                                                                                        }
                                                                                        {<-o>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.exe>
                                                                                        }
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.o>
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_LessAnd '<&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 0
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullin
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                        (Redir
                                                                                          op: 
                                                                                            <
Id.Redir_GreatAnd '>&'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 1
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName nullout
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.VSub_DollarName '$executable'
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName executable
                                                                                          )
                                                                                        }
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.exe>
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  ops: [
                                                                                    <Id.Op_DAmp _>
                                                                                    <Id.Op_DAmp _>
                                                                                  ]
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'e='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'e='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'e='
                                                                                        >
                                                                                      name: e
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <wc>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {<wc>}
                                                                                              {<-l>}
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName tmp
                                                                                                ) <.e>
                                                                                              }
                                                                                            ]
                                                                                            redirects: []
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {<set>}
                                                                                {<x>}
                                                                                {<x>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName binding
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.WhileUntil
                                                                              keyword: 
                                                                                <Id.KW_While while>
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.Lit_Colon ':'
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Colon ':'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  left: <Id.KW_Do do>
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <shift>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<shift>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <shift>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<shift>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_Pound '#'
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: <0>
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {<0>}
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Break break
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: <rm>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<rm>}
                                                                                        {<-f>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.exe>
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.AndOr
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
compile
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              <
compile
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName cc
                                                                                              )
                                                                                            }
                                                                                            {<-o>}
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName tmp
                                                                                              ) <.exe>
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_Number 1
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName tmp
                                                                                              ) <.o>
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_LessAnd '<&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
0
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_GreatAnd '>&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
1
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullout
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
Id.VSub_DollarName '$executable'
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName executable
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName tmp
                                                                                              ) <.exe>
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.ControlFlow
                                                                                          keyword: 
                                                                                            <
Id.ControlFlow_Continue continue
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      ops: [
                                                                                        <Id.Op_DAmp 
_
                                                                                        >
                                                                                        <
Id.Op_DPipe _
                                                                                        >
                                                                                      ]
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
wc
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
wc
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-l
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                                        ) <.e>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.VSub_DollarName '$e'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName e
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: []
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Continue continue
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'd='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'd='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'd='
                                                                                                >
                                                                                              name: 
d
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
ls
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
ls
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-s
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                                        ) <.exe>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Simple
                                                                                      blame_tok: <rm>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<rm>}
                                                                                        {<-f>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.exe>
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.AndOr
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
compile
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              <
compile
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName cc
                                                                                              )
                                                                                            }
                                                                                            {<-o>}
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName tmp
                                                                                              ) <.exe>
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_Number 2
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName tmp
                                                                                              ) <.o>
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_LessAnd '<&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
0
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_GreatAnd '>&'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
1
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName nullout
                                                                                                  )
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
Id.VSub_DollarName '$executable'
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName executable
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName tmp
                                                                                              ) <.exe>
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.ControlFlow
                                                                                          keyword: 
                                                                                            <
Id.ControlFlow_Continue continue
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      ops: [
                                                                                        <Id.Op_DAmp 
_
                                                                                        >
                                                                                        <
Id.Op_DPipe _
                                                                                        >
                                                                                      ]
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
wc
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
wc
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-l
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                                        ) <.e>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.VSub_DollarName '$e'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName e
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: []
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Continue continue
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
ls
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
ls
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        <
-s
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                                        ) <.exe>
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.VSub_DollarName '$d'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName d
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: []
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'static='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'static='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'static='
                                                                                                        >
                                                                                                      name: 
static
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_Number 2
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
set
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
set
                                                                                                  >
                                                                                                }
                                                                                                {<x>}
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
shift
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
shift
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.ControlFlow
                                                                                              keyword: 
                                                                                                <
Id.ControlFlow_Break break
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.KW_Done done>
                                                                                )
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [24525 24572]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [24455 24483]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'static='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'static='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'static='>
                                                                  name: static
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: (rhs_word__Empty)
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <api>
                                          pattern: (pat.Words words:[{<api>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <cmd>
                                          pattern: (pat.Words words:[{<cmd>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [
                                                {<is>}
                                                {($ Id.VSub_DollarName o)}
                                                {($ Id.VSub_DollarName a)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'k='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'k='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'k='>
                                                      name: k
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [j]
                                              iterable: (for_iter.Words words:[{(DQ )} {<usr>}])
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName j)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_DoubleQuote '"'>
                                                          pattern: (pat.Words words:[{(DQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'd='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'd='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'd='>
                                                                      name: d
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 's='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 's='>
                                                                      name: s
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'd='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'd='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'd='>
                                                                      name: d
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<'/'> ($ Id.VSub_DollarName j)}
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 's='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 's='>
                                                                      name: s
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<Id.Lit_Underscore _> 
                                                                      ($ Id.VSub_DollarName j)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ForEach
                                                      keyword: <Id.KW_For for>
                                                      iter_names: [i]
                                                      iterable: 
                                                        (for_iter.Words
                                                          words: [{<bin>} {<etc>} {<ucb>}]
                                                        )
                                                      body: 
                                                        (command.DoGroup
                                                          left: <Id.KW_Do do>
                                                          children: [
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<-f>}
                                                                            {
                                                                              ($ Id.VSub_DollarName d) <'/'> ($ Id.VSub_DollarName i) <'/'> ($ Id.VSub_DollarName a)
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName k)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <1>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<1>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'k='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'k='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'k='
                                                                                        >
                                                                                      name: k
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<0>}
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName M
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          > <-> <Id.Lit_Star '*'>
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: []
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'usr='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'usr='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'usr='
                                                                                                >
                                                                                              name: 
usr
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName usr
                                                                                                ) ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName m) <' 1'>
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName define
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: <1>
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {<1>}
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
'#define '
                                                                                                    > ($ Id.VSub_DollarName m) <'\t1\t/* '> ($ Id.VSub_DollarName a) <' in ?(/usr)/(bin|etc|ucb) */'>
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: <n>
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {<n>}
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName m
                                                                                                    ) <'=1'>
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {(${ Id.VSub_Name s) 
                                                                              <Id.Lit_Underscore _> (${ Id.VSub_Name i) <Id.Lit_Underscore _> (${ Id.VSub_Name v)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'usr='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'usr='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'usr='
                                                                                >
                                                                              name: usr
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName usr
                                                                                ) ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName c) <' 1'>
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
define
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <1>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<1>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ <'#define '> 
                                                                                    ($ 
Id.VSub_DollarName c
                                                                                    ) <'\t1\t/* '> ($ Id.VSub_DollarName d) <'/'> ($ Id.VSub_DollarName i) <'/'> ($ Id.VSub_DollarName a) 
                                                                                    <' found */'>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <n>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<n>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName c
                                                                                    ) <'=1'>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [24982 24995]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.KW_Done done>
                                                        )
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName k)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <success>
                                                      more_env: []
                                                      words: [{<success>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <1>
                                                  pattern: (pat.Words words:[{<1>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <failure>
                                                      more_env: []
                                                      words: [{<failure>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <dat>
                                          pattern: (pat.Words words:[{<dat>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (BraceGroup
                                              left: <Id.Lit_LBrace '{'>
                                              children: [
                                                (command.Simple
                                                  blame_tok: <copy>
                                                  more_env: []
                                                  words: [
                                                    {<copy>}
                                                    {<->}
                                                    {
                                                      (DQ <'\n'> ($ Id.VSub_DollarName tst) <'\n'> 
                                                        ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> ($ Id.VSub_DollarName pre) 
                                                        <'\n'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName inc)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_QMark '?'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {(DQ ($ Id.VSub_DollarName inc))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ <'_BEGIN_EXTERNS_\n'> 
                                                                <'extern int '> ($ Id.VSub_DollarName v) <';\n'> <_END_EXTERNS_>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ <'\n'> <'#ifdef _DLL\n'> <'#define _REF_\n'> 
                                                        <'#else\n'> <'#define _REF_\t&\n'> <'#endif\n'> <'int main(){char* i = (char*) _REF_ '> ($ Id.VSub_DollarName v) 
                                                        <'; return ((unsigned int)i)^0xaaaa;}'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                )
                                              ]
                                              right: <Id.Lit_RBrace '}'>
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [
                                                {<is>}
                                                {($ Id.VSub_DollarName o)}
                                                {($ Id.VSub_DollarName v)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <rm>
                                              more_env: []
                                              words: [{<rm>} {<-f>} {($ Id.VSub_DollarName tmp) <.exe>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <compile>
                                                  more_env: []
                                                  words: [
                                                    {<compile>}
                                                    {($ Id.VSub_DollarName cc)}
                                                    {<-c>}
                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_LessAnd '<&'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {($ Id.VSub_DollarName nullin)}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName nullout)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <compile>
                                                  more_env: []
                                                  words: [
                                                    {<compile>}
                                                    {($ Id.VSub_DollarName cc)}
                                                    {($ Id.VSub_DollarName static)}
                                                    {<-o>}
                                                    {($ Id.VSub_DollarName tmp) <.exe>}
                                                    {($ Id.VSub_DollarName tmp) <.o>}
                                                    {($ Id.VSub_DollarName lib)}
                                                    {($ Id.VSub_DollarName deflib)}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_LessAnd '<&'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {($ Id.VSub_DollarName nullin)}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName nullout)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$executable'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName executable)}
                                                    {($ Id.VSub_DollarName tmp) <.exe>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_QMark '?')}
                                                {<1>}
                                                {(DQ ($ Id.VSub_DollarName v) <' in default lib(s)'>)}
                                                {
                                                  (DQ ($ Id.VSub_DollarName v) 
                                                    <' not in default lib(s)'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <dfn>
                                          pattern: (pat.Words words:[{<dfn>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<dfn>} {($ Id.VSub_DollarName v)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                    ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'#ifdef '> 
                                                    ($ Id.VSub_DollarName v) <'\n'> <'<<'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'#ifndef '> 
                                                    ($ Id.VSub_DollarName v) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>>\n'> <'<<'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) <'#define '> ($ Id.VSub_DollarName v) 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) <'>>\t'> ($ Id.VSub_DollarName v) <'\t<<'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) <'/* native '> ($ Id.VSub_DollarName v) <' */'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) <'>>\n'> <'<<'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'#endif'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) <'>>\n'> <'#endif'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-E>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName tmp) <.i>}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <sed>
                                                      more_env: []
                                                      words: [
                                                        {<sed>}
                                                        {<-e>}
                                                        {(SQ <'/<<[ \t]*".*"[ \t]*>>/!d'>)}
                                                        {<-e>}
                                                        {(SQ <'s/<<[ \t]*"//g'>)}
                                                        {<-e>}
                                                        {(SQ <'s/"[ \t]*>>//g'>)}
                                                        {($ Id.VSub_DollarName tmp) <.i>}
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.t>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-s>}
                                                                    {($ Id.VSub_DollarName tmp) <.t>}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <success>
                                                              more_env: []
                                                              words: [{<success>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <cat>
                                                              more_env: []
                                                              words: [
                                                                {<cat>}
                                                                {($ Id.VSub_DollarName tmp) <.t>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [25516 25526]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Simple
                                                          blame_tok: <failure>
                                                          more_env: []
                                                          words: [{<failure>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [25466 25485]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <failure>
                                                  more_env: []
                                                  words: [{<failure>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <exp>
                                          pattern: (pat.Words words:[{<exp>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName test)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                                            ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName sline) <': test expression expected for '> ($ Id.VSub_DollarName o)
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '>&'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName stderr)}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: (pat.Words words:[{<->} {(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'x='> (SQ <'$'>) 
                                                          ($ Id.VSub_DollarName a)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName x)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'result='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'result='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'result='>
                                                                      name: result
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<FAILURE>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName test)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <01> 
                                                          <Id.Lit_RBracket ']'>
                                                        }
                                                        {(SQ <'"'>) <Id.Lit_Star '*'> (SQ <'"'>)}
                                                        {(SQ <'<'>) <Id.Lit_Star '*'> (SQ <'>'>)}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName a)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <->
                                                          pattern: (pat.Words words:[{<->} {(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {($ Id.VSub_DollarName define) 
                                                                      ($ Id.VSub_DollarName note)
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <1>
                                                                  pattern: (pat.Words words:[{<1>}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            ($ Id.VSub_DollarName a) <'\t'> ($ Id.VSub_DollarName test)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <1>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<1> <Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            ($ Id.VSub_DollarName a) <'\t'> ($ Id.VSub_DollarName test) <'\t/* '> ($ Id.VSub_DollarName note) <' */'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <n>
                                                                  pattern: (pat.Words words:[{<n>}])
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName a) <'='> ($ Id.VSub_DollarName test)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {($ Id.VSub_DollarName a) 
                                                                  <Id.Lit_Equals '='> (SQ <'$test'>)
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName note)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'note='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'note='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'note='>
                                                                      name: note
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName test)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName test)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <is>
                                                              more_env: []
                                                              words: [
                                                                {<is>}
                                                                {<exp>}
                                                                {(DQ ($ Id.VSub_DollarName note))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [i]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {(SQ )}
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName test
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_], & ,g'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName i)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_LBracket '['>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') 
                                                                                  (word_part.EscapedLiteral
                                                                                    token: 
                                                                                      <
Id.Lit_EscapedChar '\\\t'
                                                                                      >
                                                                                    ch: '\t'
                                                                                  ) <Id.Lit_RBracket ']'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_LBracket '['>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  <Id.Lit_VarLike 
'i='
                                                                                  > (SQ <'${'>) ($ Id.VSub_DollarName i) (SQ <'}'>)
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName i
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <
Id.Left_SingleQuote '\''
                                                                                    >
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{(SQ )}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'i='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'i='
                                                                                                >
                                                                                              name: 
i
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: {<0>}
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <
Id.Left_SingleQuote '\''
                                                                                    >
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {(SQ <'"'>) 
                                                                                          <
Id.Lit_Star '*'
                                                                                          > (SQ <'"'>)
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: []
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          > <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <-> <Id.Lit_Other '+'> <0123456789> <Id.Lit_RBracket ']'> 
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName i
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  > (SQ <'"'>) <Id.Lit_Star '*'>
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'i='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'i='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'i='
                                                                                                        >
                                                                                                      name: 
i
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      <
1
                                                                                                      >
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'i='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'i='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'i='
                                                                                                        >
                                                                                                      name: 
i
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (SQ 
                                                                                                        <
'"'
                                                                                                        >
                                                                                                      ) ($ Id.VSub_DollarName i) (SQ <'"'>)
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'x='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      name: x
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        ) <' '> ($ Id.VSub_DollarName i)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: 
                                                                            <Id.Left_SingleQuote 
'\''
                                                                            >
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{(SQ <'!'>)}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'x='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      name: x
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        ) <' 0 ='>
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: 
                                                                            <Id.Left_SingleQuote 
'\''
                                                                            >
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {(SQ <'&'>)}
                                                                                {(SQ <'|'>)}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName x
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          > (DQ ($ Id.VSub_DollarName i))
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: []
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'x='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'x='
                                                                                                >
                                                                                              name: 
x
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName x
                                                                                                ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') ($ Id.VSub_DollarName i)
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'x='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'x='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'x='
                                                                                        >
                                                                                      name: x
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName x
                                                                                        ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') ($ Id.VSub_DollarName i)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: <eval>
                                                                            more_env: []
                                                                            words: [
                                                                              {<eval>}
                                                                              {<expr>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName x
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: [
                                                                              (Redir
                                                                                op: 
                                                                                  <
Id.Redir_GreatAnd '2>&'
                                                                                  >
                                                                                loc: 
                                                                                  (redir_loc.Fd
                                                                                    fd: 2
                                                                                  )
                                                                                arg: 
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName stderr
                                                                                    )
                                                                                  }
                                                                              )
                                                                            ]
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName c)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'c='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      name: c
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<0>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'M='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'M='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'M='>
                                                              name: M
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName a)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName a)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <report>
                                                      more_env: []
                                                      words: [
                                                        {<report>}
                                                        {($ Id.VSub_DollarName c)}
                                                        {<1>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName note) <' is true'>)
                                                        }
                                                        {
                                                          (DQ ($ Id.VSub_DollarName note) 
                                                            <' is false'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <hdr>
                                          pattern: 
                                            (pat.Words
                                              words: [{<hdr>} {<lcl>} {<nxt>} {<sys>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <lcl>
                                                  pattern: (pat.Words words:[{<lcl>} {<nxt>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName M)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <-> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'x='> (SQ <'$'>) 
                                                          <Id.Lit_Underscore _> ($ Id.VSub_DollarName m)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName x)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_Underscore _> 
                                                          ($ Id.VSub_DollarName m) <Id.Lit_Equals '='> <1>
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <is>
                                                      more_env: []
                                                      words: [
                                                        {<is>}
                                                        {($ Id.VSub_DollarName o)}
                                                        {($ Id.VSub_DollarName f)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                            ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'#include <'> 
                                                            ($ Id.VSub_DollarName f) <'.h>'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName f)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <'sys/'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<'sys/'> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'e='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'e='>
                                                                      name: e
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'e='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'e='>
                                                                      name: e
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (SQ 
                                                                        <
'-e /[\\\\\\\\\\/]sys[\\\\\\\\\\/]'
                                                                        >
                                                                      ) ($ Id.VSub_DollarName f) (SQ <'\\\\.h"/d'>)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <compile>
                                                                  more_env: []
                                                                  words: [
                                                                    {<compile>}
                                                                    {($ Id.VSub_DollarName cc)}
                                                                    {<-E>}
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                  ]
                                                                  redirects: [
                                                                    (Redir
                                                                      op: <Id.Redir_LessAnd '<&'>
                                                                      loc: (redir_loc.Fd fd:0)
                                                                      arg: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
nullin
                                                                          )
                                                                        }
                                                                    )
                                                                    (Redir
                                                                      op: <Id.Redir_Great '>'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: 
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.i>
                                                                        }
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'i='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      name: i
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
'/^#[line \t]*[0123456789][0123456789]*[ \t][ \t]*"[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:]*[\\\\\\/].*[\\\\\\/]'
                                                                                      >
                                                                                    ) ($ Id.VSub_DollarName f) (SQ <'\\.h"/!d'>)
                                                                                  }
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName e
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {<s> 
                                                                                    (SQ 
                                                                                      <
'/.*"\\(.*\\)".*/\\1/'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <'s,\\\\,/,g'>
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <'s,///*,/,g'>
                                                                                    )
                                                                                  }
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName tmp
                                                                                    ) <.i>
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [{<sed>} {<1q>}]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName i)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_LBracket '['>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_LBracket '['> 
                                                                          <
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                          > <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\\\'
                                                                              >
                                                                            ch: '\\'
                                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: []
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <'/'> 
                                                                          <Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'k='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'k='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'k='>
                                                                              name: k
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <echo>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<echo>}
                                                                                          {
                                                                                            (DQ 
                                                                                              ($ 
Id.VSub_DollarName i
                                                                                              )
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <sed>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<sed>}
                                                                                          {
                                                                                            (SQ 
                                                                                              <
's,.*/\\([^/]*/[^/]*\\)$,../\\1,'
                                                                                              >
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName pre) <'\n'> ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) 
                                                                            <'\n'> <'#include <'> ($ Id.VSub_DollarName k) <'>'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
tmp
                                                                              ) <.c>
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <compile>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<compile>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName cc
                                                                                      )
                                                                                    }
                                                                                    {<-E>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.c>
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_LessAnd '<&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 0
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullin
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName tmp
                                                                                          ) <.i>
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'j='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'j='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'j='
                                                                                        >
                                                                                      name: j
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Pipeline
                                                                                            children: [
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
sed
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
sed
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
-e
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (SQ 
                                                                                                      <
'/^#[line \t]*[0123456789][0123456789]*[ \t][ \t]*"[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:]*[\\\\\\/].*[\\\\\\/]'
                                                                                                      >
                                                                                                    ) ($ Id.VSub_DollarName f) (SQ <'\\.h"/!d'>)
                                                                                                  }
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName e
                                                                                                    )
                                                                                                  }
                                                                                                  {
                                                                                                    <
-e
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
s
                                                                                                    > (SQ <'/.*"\\(.*\\)".*/\\1/'>)
                                                                                                  }
                                                                                                  {
                                                                                                    <
-e
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (SQ 
                                                                                                      <
's,\\\\,/,g'
                                                                                                      >
                                                                                                    )
                                                                                                  }
                                                                                                  {
                                                                                                    <
-e
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (SQ 
                                                                                                      <
's,///*,/,g'
                                                                                                      >
                                                                                                    )
                                                                                                  }
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName tmp
                                                                                                    ) <.i>
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
sed
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
sed
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
1q
                                                                                                    >
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            ]
                                                                                            ops: [
                                                                                              <
Id.Op_Pipe _
                                                                                              >
                                                                                            ]
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'wi='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'wi='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'wi='
                                                                                        >
                                                                                      name: wi
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <wc>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {<wc>}
                                                                                            ]
                                                                                            redirects: [
                                                                                              (Redir
                                                                                                op: 
                                                                                                  <
Id.Redir_Less '<'
                                                                                                  >
                                                                                                loc: 
                                                                                                  (redir_loc.Fd
                                                                                                    fd: 
0
                                                                                                  )
                                                                                                arg: 
                                                                                                  {
                                                                                                    (DQ 
                                                                                                      ($ 
Id.VSub_DollarName i
                                                                                                      )
                                                                                                    )
                                                                                                  }
                                                                                              )
                                                                                            ]
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'wj='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'wj='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'wj='
                                                                                        >
                                                                                      name: wj
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <wc>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {<wc>}
                                                                                            ]
                                                                                            redirects: [
                                                                                              (Redir
                                                                                                op: 
                                                                                                  <
Id.Redir_Less '<'
                                                                                                  >
                                                                                                loc: 
                                                                                                  (redir_loc.Fd
                                                                                                    fd: 
0
                                                                                                  )
                                                                                                arg: 
                                                                                                  {
                                                                                                    (DQ 
                                                                                                      ($ 
Id.VSub_DollarName j
                                                                                                      )
                                                                                                    )
                                                                                                  }
                                                                                              )
                                                                                            ]
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName wi
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <
Id.VSub_DollarName '$wj'
                                                                                    >
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName wj
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'i='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'i='
                                                                                                >
                                                                                              name: 
i
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName k
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [26462 26481]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName pre) <'\n'> ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) 
                                                                            <'\n'> <'#include <../include/'> ($ Id.VSub_DollarName f) <'.h>'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
tmp
                                                                              ) <.c>
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <compile>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<compile>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName cc
                                                                                      )
                                                                                    }
                                                                                    {<-E>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                      ) <.c>
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_LessAnd '<&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 0
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullin
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_GreatAnd '>&'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName nullout
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'i='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      name: i
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {<'../include/'> 
                                                                                      ($ 
Id.VSub_DollarName f
                                                                                      ) <.h>
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [26628 26646]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [26297 26316]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'i='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'i='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  name: i
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: (rhs_word__Empty)
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_LBracket '['>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_LBracket '['> 
                                                                  <
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                  > <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                                  (word_part.EscapedLiteral
                                                                    token: 
                                                                      <Id.Lit_EscapedChar '\\\\'>
                                                                    ch: '\\'
                                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                }
                                                                {<Id.Lit_LBracket '['> 
                                                                  (word_part.EscapedLiteral
                                                                    token: 
                                                                      <Id.Lit_EscapedChar '\\\\'>
                                                                    ch: '\\'
                                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <success>
                                                              more_env: []
                                                              words: [{<success>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <lcl>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<lcl>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ 
                                                                            <
'#if defined(__STDPP__directive)'
                                                                            >
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ 
                                                                            <
'__STDPP__directive pragma pp:hosted'
                                                                            >
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [{<echo>} {(DQ <'#endif'>)}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#include <'> 
                                                                            ($ Id.VSub_DollarName i) <'>\t/* the native <'> ($ Id.VSub_DollarName f) <'.h> */'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#undef\t'> 
                                                                            ($ Id.VSub_DollarName m)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'usr='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'usr='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'usr='
                                                                                >
                                                                              name: usr
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName usr
                                                                                ) ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName m) <' 1'>
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            ($ Id.VSub_DollarName m) <'\t1'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <nxt>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<nxt>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            ($ Id.VSub_DollarName m) <' <'> ($ Id.VSub_DollarName i) <'>\t/* include path for the native <'> ($ Id.VSub_DollarName f) 
                                                                            <'.h> */'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            (${ Id.VSub_Name m) <'_str '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName i) 
                                                                            (word_part.EscapedLiteral
                                                                              token: 
                                                                                <Id.Lit_EscapedChar 
'\\"'
                                                                                >
                                                                              ch: '"'
                                                                            ) <'\t/* include string for the native <'> ($ Id.VSub_DollarName f) <'.h> */'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'usr='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'usr='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'usr='
                                                                                >
                                                                              name: usr
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName usr
                                                                                ) ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName m) <' <'> ($ Id.VSub_DollarName i) <'>'> 
                                                                                ($ 
Id.VSub_DollarName nl
                                                                                ) <'#define '> (${ Id.VSub_Name m) <'_str '> 
                                                                                (word_part.EscapedLiteral
                                                                                  token: 
                                                                                    <
Id.Lit_EscapedChar '\\"'
                                                                                    >
                                                                                  ch: '"'
                                                                                ) ($ Id.VSub_DollarName i) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {($ Id.VSub_DollarName m) 
                                                                          <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\<'
                                                                              >
                                                                            ch: '<'
                                                                          ) ($ Id.VSub_DollarName i) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\>'
                                                                              >
                                                                            ch: '>'
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <'../'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<'../'> <Id.Lit_Star '*'> <'/'> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <success>
                                                              more_env: []
                                                              words: [{<success>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <lcl>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<lcl>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#include <'> 
                                                                            ($ Id.VSub_DollarName i) <'>\t/* the native <'> ($ Id.VSub_DollarName f) <'.h> */'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#undef\t'> 
                                                                            ($ Id.VSub_DollarName m)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'usr='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'usr='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'usr='
                                                                                >
                                                                              name: usr
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName usr
                                                                                ) ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName m) <' 1'>
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            ($ Id.VSub_DollarName m) <'\t1'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {($ Id.VSub_DollarName m) 
                                                                          <Id.Lit_Equals '='> <1>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <nxt>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<nxt>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            ($ Id.VSub_DollarName m) <' <'> ($ Id.VSub_DollarName i) <'>\t/* include path for the native <'> ($ Id.VSub_DollarName f) 
                                                                            <'.h> */'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <echo>
                                                                      more_env: []
                                                                      words: [
                                                                        {<echo>}
                                                                        {
                                                                          (DQ <'#define '> 
                                                                            (${ Id.VSub_Name m) <'_str '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName i) 
                                                                            (word_part.EscapedLiteral
                                                                              token: 
                                                                                <Id.Lit_EscapedChar 
'\\"'
                                                                                >
                                                                              ch: '"'
                                                                            ) <'\t/* include string for the native <'> ($ Id.VSub_DollarName f) <'.h> */'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'usr='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'usr='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'usr='
                                                                                >
                                                                              name: usr
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName usr
                                                                                ) ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName m) <' <'> ($ Id.VSub_DollarName i) <'>'> 
                                                                                ($ 
Id.VSub_DollarName nl
                                                                                ) <'#define '> (${ Id.VSub_Name m) <'_str '> 
                                                                                (word_part.EscapedLiteral
                                                                                  token: 
                                                                                    <
Id.Lit_EscapedChar '\\"'
                                                                                    >
                                                                                  ch: '"'
                                                                                ) ($ Id.VSub_DollarName i) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {($ Id.VSub_DollarName m) 
                                                                          <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\<'
                                                                              >
                                                                            ch: '<'
                                                                          ) ($ Id.VSub_DollarName i) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\>'
                                                                              >
                                                                            ch: '>'
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <failure>
                                                              more_env: []
                                                              words: [{<failure>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <lcl>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<lcl>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
all
                                                                              ) ($ Id.VSub_DollarName config) ($ Id.VSub_DollarName undef)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_QMark '?'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_QMark '?'> 
                                                                                  <1> <Id.Lit_QMark '?'>
                                                                                }
                                                                                {<Id.Lit_QMark '?'> 
                                                                                  <Id.Lit_QMark '?'> <1>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ <'#undef\t'> 
                                                                                    ($ 
Id.VSub_DollarName m
                                                                                    ) <'\t\t/* no native <'> ($ Id.VSub_DollarName f) <'.h> */'>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <1>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<1> 
                                                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ <'#define '> 
                                                                                    ($ 
Id.VSub_DollarName m
                                                                                    ) <'\t0\t/* no native <'> ($ Id.VSub_DollarName f) <'.h> */'>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {($ Id.VSub_DollarName m) 
                                                                          <Id.Lit_Equals '='> <0>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <nxt>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<nxt>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
all
                                                                              ) ($ Id.VSub_DollarName config) ($ Id.VSub_DollarName undef)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_QMark '?'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_QMark '?'> 
                                                                                  <1> <Id.Lit_QMark '?'>
                                                                                }
                                                                                {<Id.Lit_QMark '?'> 
                                                                                  <Id.Lit_QMark '?'> <1>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ <'#undef\t'> 
                                                                                    ($ 
Id.VSub_DollarName m
                                                                                    ) <'\t\t/* no include path for the native <'> ($ Id.VSub_DollarName f) <'.h> */'>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName o)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <hdr>
                                                          pattern: (pat.Words words:[{<hdr>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName f) <.h>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <sys>
                                                          pattern: (pat.Words words:[{<sys>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<'sys/'> 
                                                                      ($ Id.VSub_DollarName f) <.h>
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName gothdr) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' - '> ($ Id.VSub_DollarName x) 
                                                                    <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <failure>
                                                              more_env: []
                                                              words: [{<failure>} {<Id.Lit_Other '+'>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' + '> ($ Id.VSub_DollarName x) 
                                                                    <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <success>
                                                              more_env: []
                                                              words: [{<success>} {<Id.Lit_Other '+'>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ <'\n'> 
                                                                    ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName allinc) <'\n'> ($ Id.VSub_DollarName inc) 
                                                                    <'\n'> <'#include <'> ($ Id.VSub_DollarName x) <'>'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Simple
                                                                          blame_tok: <is_hdr>
                                                                          more_env: []
                                                                          words: [
                                                                            {<is_hdr>}
                                                                            {
                                                                              ($ Id.VSub_DollarName x)
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'gothdr='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'gothdr='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'gothdr='
                                                                                >
                                                                              name: gothdr
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName gothdr
                                                                                ) <' + '> ($ Id.VSub_DollarName x)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName M)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <-> <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: []
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      (DQ <' '> 
                                                                                        ($ 
Id.VSub_DollarName puthdr
                                                                                        ) <' '>
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          > (DQ <' '> ($ Id.VSub_DollarName m) <' '>) <Id.Lit_Star '*'>
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: []
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'puthdr='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'puthdr='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'puthdr='
                                                                                                >
                                                                                              name: 
puthdr
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName puthdr
                                                                                                ) <' '> ($ Id.VSub_DollarName m)
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'usr='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'usr='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'usr='
                                                                                                >
                                                                                              name: 
usr
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName usr
                                                                                                ) ($ Id.VSub_DollarName nl) <'#define '> ($ Id.VSub_DollarName m) <' 1'>
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName define
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <1>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<1>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <echo>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<echo>}
                                                                                        {
                                                                                          (DQ 
                                                                                            <
'#define '
                                                                                            > ($ Id.VSub_DollarName m) <'\t1\t/* #include <'> ($ Id.VSub_DollarName x) <'> ok */'>
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: <n>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<n>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <echo>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<echo>}
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName m
                                                                                            ) <'=1'>
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName m
                                                                                  ) <Id.Lit_Equals '='> <1>
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [27227 27234]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'gothdr='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'gothdr='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'gothdr='
                                                                            >
                                                                          name: gothdr
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
gothdr
                                                                            ) <' - '> ($ Id.VSub_DollarName x)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.Case
                                                                  case_kw: <Id.KW_Case case>
                                                                  to_match: 
                                                                    (case_arg.Word
                                                                      w: {($ Id.VSub_DollarName M)}
                                                                    )
                                                                  arms_start: <Id.KW_In in>
                                                                  arms: [
                                                                    (CaseArm
                                                                      left: <Id.Lit_Star '*'>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [
                                                                            {<Id.Lit_Star '*'> <-> 
                                                                              <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: []
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                    (CaseArm
                                                                      left: <Id.Lit_Star '*'>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [{<Id.Lit_Star '*'>}]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: [
                                                                        (command.Case
                                                                          case_kw: <Id.KW_Case case>
                                                                          to_match: 
                                                                            (case_arg.Word
                                                                              w: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName define
                                                                                  ) ($ Id.VSub_DollarName all) ($ Id.VSub_DollarName config) ($ Id.VSub_DollarName undef)
                                                                                }
                                                                            )
                                                                          arms_start: <Id.KW_In in>
                                                                          arms: [
                                                                            (CaseArm
                                                                              left: <1>
                                                                              pattern: 
                                                                                (pat.Words
                                                                                  words: [
                                                                                    {<1> 
                                                                                      <Id.Lit_QMark 
'?'
                                                                                      > <1> <Id.Lit_QMark '?'>
                                                                                    }
                                                                                    {<1> 
                                                                                      <Id.Lit_QMark 
'?'
                                                                                      > <Id.Lit_QMark '?'> <1>
                                                                                    }
                                                                                  ]
                                                                                )
                                                                              middle: 
                                                                                <Id.Right_CasePat _>
                                                                              action: [
                                                                                (command.Simple
                                                                                  blame_tok: <echo>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<echo>}
                                                                                    {
                                                                                      (DQ 
                                                                                        <'#undef\t'> ($ Id.VSub_DollarName m) <'\t\t/* #include <'> ($ Id.VSub_DollarName x) <'> not ok */'>
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              right: <Id.Op_DSemi _>
                                                                            )
                                                                            (CaseArm
                                                                              left: <11>
                                                                              pattern: 
                                                                                (pat.Words
                                                                                  words: [
                                                                                    {<11> 
                                                                                      <Id.Lit_QMark 
'?'
                                                                                      > <Id.Lit_QMark '?'>
                                                                                    }
                                                                                  ]
                                                                                )
                                                                              middle: 
                                                                                <Id.Right_CasePat _>
                                                                              action: [
                                                                                (command.Simple
                                                                                  blame_tok: <echo>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<echo>}
                                                                                    {
                                                                                      (DQ 
                                                                                        <'#define '> ($ Id.VSub_DollarName m) <'\t0\t/* #include <'> ($ Id.VSub_DollarName x) <'> not ok */'>
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              right: <Id.Op_DSemi _>
                                                                            )
                                                                            (CaseArm
                                                                              left: <n1>
                                                                              pattern: 
                                                                                (pat.Words
                                                                                  words: [
                                                                                    {<n1> 
                                                                                      <Id.Lit_QMark 
'?'
                                                                                      > <1>
                                                                                    }
                                                                                  ]
                                                                                )
                                                                              middle: 
                                                                                <Id.Right_CasePat _>
                                                                              action: [
                                                                                (command.Simple
                                                                                  blame_tok: <echo>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<echo>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName m
                                                                                        ) <'='>
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              right: <Id.Op_DSemi _>
                                                                            )
                                                                            (CaseArm
                                                                              left: <n1>
                                                                              pattern: 
                                                                                (pat.Words
                                                                                  words: [
                                                                                    {<n1> 
                                                                                      <Id.Lit_QMark 
'?'
                                                                                      > <Id.Lit_QMark '?'>
                                                                                    }
                                                                                  ]
                                                                                )
                                                                              middle: 
                                                                                <Id.Right_CasePat _>
                                                                              action: [
                                                                                (command.Simple
                                                                                  blame_tok: <echo>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<echo>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName m
                                                                                        ) <'=0'>
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              right: <Id.Op_DSemi _>
                                                                            )
                                                                          ]
                                                                          arms_end: <Id.KW_Esac esac>
                                                                          redirects: []
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <eval>
                                                                          more_env: []
                                                                          words: [
                                                                            {<eval>}
                                                                            {
                                                                              ($ Id.VSub_DollarName m) <Id.Lit_Equals '='> <0>
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                  ]
                                                                  arms_end: <Id.KW_Esac esac>
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <iff>
                                          pattern: (pat.Words words:[{<iff>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <ini>
                                          pattern: (pat.Words words:[{<ini>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <key>
                                          pattern: (pat.Words words:[{<key>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'w='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'w='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'w='>
                                                      name: w
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName v)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_Colon ':'>
                                                      more_env: []
                                                      words: [{<Id.Lit_Colon ':'>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <is>
                                                      more_env: []
                                                      words: [
                                                        {<is>}
                                                        {($ Id.VSub_DollarName o)}
                                                        {($ Id.VSub_DollarName w)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                            ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> <'int f(){int '> ($ Id.VSub_DollarName w) <' = 1;return('> 
                                                            ($ Id.VSub_DollarName w) <');}'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <compile>
                                                                  more_env: []
                                                                  words: [
                                                                    {<compile>}
                                                                    {($ Id.VSub_DollarName cc)}
                                                                    {<-c>}
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                  ]
                                                                  redirects: [
                                                                    (Redir
                                                                      op: <Id.Redir_LessAnd '<&'>
                                                                      loc: (redir_loc.Fd fd:0)
                                                                      arg: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
nullin
                                                                          )
                                                                        }
                                                                    )
                                                                    (Redir
                                                                      op: <Id.Redir_GreatAnd '>&'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
nullout
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <failure>
                                                              more_env: []
                                                              words: [{<failure>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName set)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> (DQ <' ='>)}
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ <' = '>) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <set>
                                                                      more_env: []
                                                                      words: [
                                                                        {<set>}
                                                                        {<x>}
                                                                        {($ Id.VSub_DollarName set)}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <shift>
                                                                      more_env: []
                                                                      words: [{<shift>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'w='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'w='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'w='>
                                                                              name: w
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (rhs_word__Empty)
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.WhileUntil
                                                                      keyword: <Id.KW_While while>
                                                                      cond: 
                                                                        (condition.Shell
                                                                          commands: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.Lit_Colon ':'>
                                                                              more_env: []
                                                                              words: [
                                                                                {<Id.Lit_Colon ':'>}
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                        )
                                                                      body: 
                                                                        (command.DoGroup
                                                                          left: <Id.KW_Do do>
                                                                          children: [
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_Pound '#'
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <0>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<0>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_Number 1
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Equals 
'='
                                                                                    >
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Equals '='
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName w
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <
Id.Left_SingleQuote '\''
                                                                                    >
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{(SQ )}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'w='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'w='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'w='
                                                                                                >
                                                                                              name: 
w
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_Number 1
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'w='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'w='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'w='
                                                                                                >
                                                                                              name: 
w
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName w
                                                                                                ) <' '> ($ Id.VSub_Number 1)
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <shift>
                                                                              more_env: []
                                                                              words: [{<shift>}]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.KW_Done done>
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: {($ Id.VSub_Number 1)}
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Equals '='>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Equals '='>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <shift>
                                                                              more_env: []
                                                                              words: [{<shift>}]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Case
                                                                              case_kw: 
                                                                                <Id.KW_Case case>
                                                                              to_match: 
                                                                                (case_arg.Word
                                                                                  w: 
                                                                                    {
                                                                                      ($ 
Id.VSub_Pound '#'
                                                                                      )
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <0>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [{<0>}]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'set='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'set='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'set='
                                                                                                >
                                                                                              name: 
set
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                <
' '
                                                                                                >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                                (CaseArm
                                                                                  left: 
                                                                                    <Id.Lit_Star '*'>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {
                                                                                          <
Id.Lit_Star '*'
                                                                                          >
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'set='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'set='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'set='
                                                                                                >
                                                                                              name: 
set
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_Star '*'
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.Op_DSemi _>
                                                                                )
                                                                              ]
                                                                              arms_end: 
                                                                                <Id.KW_Esac esac>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'set='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'set='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'set='
                                                                                        >
                                                                                      name: set
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word__Empty)
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
shell
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <ksh>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<ksh>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <typeset>
                                                                              more_env: []
                                                                              words: [
                                                                                {<typeset>}
                                                                                {<-u>}
                                                                                {
                                                                                  <Id.Lit_VarLike 
'u='
                                                                                  > ($ Id.VSub_DollarName w)
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'u='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'u='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'u='
                                                                                        >
                                                                                      name: u
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Pipeline
                                                                                            children: [
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
echo
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
echo
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName w
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
tr
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
tr
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
abcdefghijklmnopqrstuvwxyz
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                                    >
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            ]
                                                                                            ops: [
                                                                                              <
Id.Op_Pipe _
                                                                                              >
                                                                                            ]
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'u='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'u='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'u='>
                                                                              name: u
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<Id.Lit_Underscore _> 
                                                                              ($ Id.VSub_DollarName u)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'M='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'M='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'M='>
                                                                              name: M
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName w)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName M)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > <Id.KW_Bang '!'> <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_> 
                                                                                  <Id.Lit_RBracket 
']'
                                                                                  > <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'M='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'M='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'M='
                                                                                        >
                                                                                      name: M
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Pipeline
                                                                                            children: [
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
echo
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
echo
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (DQ 
                                                                                                      <
X
                                                                                                      > ($ Id.VSub_DollarName m)
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
sed
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
sed
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    <
-e
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (SQ 
                                                                                                      <
's,^.,,'
                                                                                                      >
                                                                                                    )
                                                                                                  }
                                                                                                  {
                                                                                                    <
-e
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (SQ 
                                                                                                      <
's,[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_],_,g'
                                                                                                      >
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            ]
                                                                                            ops: [
                                                                                              <
Id.Op_Pipe _
                                                                                              >
                                                                                            ]
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
config
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <1>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<1>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'm='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'm='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'm='
                                                                                        >
                                                                                      name: m
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {<HAVE> 
                                                                                      (${ 
Id.VSub_Name u
                                                                                      ) <_RESERVED>
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'm='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'm='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'm='
                                                                                        >
                                                                                      name: m
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {<_key_> 
                                                                                      (${ 
Id.VSub_Name w
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Continue 
continue
                                                                        >
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <report>
                                                              more_env: []
                                                              words: [
                                                                {<report>}
                                                                {<->}
                                                                {<1>}
                                                                {<->}
                                                                {<->}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName w) 
                                                                    <' is not a reserved keyword'>
                                                                  )
                                                                }
                                                                {
                                                                  (DQ 
                                                                    <
'default for reserved keyword '
                                                                    > ($ Id.VSub_DollarName v)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [27585 27603]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Simple
                                                          blame_tok: <report>
                                                          more_env: []
                                                          words: [
                                                            {<report>}
                                                            {<0>}
                                                            {<1>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName w) 
                                                                <' is a reserved keyword'>
                                                              )
                                                            }
                                                            {<->}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName M)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: []
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<Id.Lit_Star '*'>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Case
                                                                  case_kw: <Id.KW_Case case>
                                                                  to_match: 
                                                                    (case_arg.Word
                                                                      w: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
define
                                                                          ) ($ Id.VSub_DollarName w)
                                                                        }
                                                                    )
                                                                  arms_start: <Id.KW_In in>
                                                                  arms: [
                                                                    (CaseArm
                                                                      left: <1>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [
                                                                            {<1> 
                                                                              ($ Id.VSub_DollarName v)
                                                                            }
                                                                          ]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: []
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                    (CaseArm
                                                                      left: <1>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [
                                                                            {<1> <Id.Lit_Star '*'>}
                                                                          ]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: [
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ <'#define '> 
                                                                                ($ 
Id.VSub_DollarName v
                                                                                ) <'\t'> ($ Id.VSub_DollarName w) <'\t/* alternate for reserved keyword '> ($ Id.VSub_DollarName v) <' */'>
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                    (CaseArm
                                                                      left: <n>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [
                                                                            {<n> <Id.Lit_Star '*'>}
                                                                          ]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: [
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName v
                                                                                ) <'='> ($ Id.VSub_DollarName w)
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                  ]
                                                                  arms_end: <Id.KW_Esac esac>
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <lib>
                                          pattern: (pat.Words words:[{<lib>} {<mth>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: (pat.Words words:[{<->}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [
                                                {<is>}
                                                {($ Id.VSub_DollarName o)}
                                                {($ Id.VSub_DollarName v)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <copy>
                                              more_env: []
                                              words: [
                                                {<copy>}
                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                {
                                                  (DQ <'\n'> ($ Id.VSub_DollarName tst) <'\n'> 
                                                    ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> ($ Id.VSub_DollarName pre) 
                                                    <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'typedef int (*_IFFE_fun)();\n'> <'#ifdef _IFFE_extern\n'> 
                                                    <'_BEGIN_EXTERNS_\n'> <'extern int '> ($ Id.VSub_DollarName v) <'();\n'> <'_END_EXTERNS_\n'> <'#endif\n'> 
                                                    <'static _IFFE_fun i=(_IFFE_fun)'> ($ Id.VSub_DollarName v) <';int main(){return ((unsigned int)i)^0xaaaa;}\n'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'd='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'd='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'd='>
                                                      name: d
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<-D_IFFE_extern>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-c>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName nullout)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'd='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'd='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'd='>
                                                              name: d
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [28141 28159]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {($ Id.VSub_DollarName d)}
                                                            {<-c>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName nullout)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_Colon ':'>
                                                      more_env: []
                                                      words: [{<Id.Lit_Colon ':'>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [28164 28184]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'd='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'd='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'd='>
                                                          name: d
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<error>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<error>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName d))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <rm>
                                                      more_env: []
                                                      words: [
                                                        {<rm>}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName tmp) <.exe>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <compile>
                                                                      more_env: []
                                                                      words: [
                                                                        {<compile>}
                                                                        {($ Id.VSub_DollarName cc)}
                                                                        {($ Id.VSub_DollarName d)}
                                                                        {
                                                                          ($ Id.VSub_DollarName 
static
                                                                          )
                                                                        }
                                                                        {<-o>}
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.exe>
                                                                        }
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.o>
                                                                        }
                                                                        {($ Id.VSub_DollarName lib)}
                                                                        {
                                                                          ($ Id.VSub_DollarName 
deflib
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_LessAnd '<&'>
                                                                          loc: (redir_loc.Fd fd:0)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
nullin
                                                                              )
                                                                            }
                                                                        )
                                                                        (Redir
                                                                          op: 
                                                                            <Id.Redir_GreatAnd '>&'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
nullout
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName 
'$executable'
                                                                        >
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
executable
                                                                          )
                                                                        }
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.exe>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _>]
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName o)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <lib>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<lib>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<0>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<1>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <report>
                                                              more_env: []
                                                              words: [
                                                                {<report>}
                                                                {($ Id.VSub_DollarName c)}
                                                                {<1>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName v) 
                                                                    <'() in default lib(s)'>
                                                                  )
                                                                }
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName v) 
                                                                    <'() not in default lib(s)'>
                                                                  )
                                                                }
                                                                {
                                                                  (DQ <'default for function '> 
                                                                    ($ Id.VSub_DollarName v) <'()'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [28222 28259]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName o)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <mth>
                                                              pattern: (pat.Words words:[{<mth>}])
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <rm>
                                                                  more_env: []
                                                                  words: [
                                                                    {<rm>}
                                                                    {<-f>}
                                                                    {($ Id.VSub_DollarName tmp) 
                                                                      <.exe>
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <compile>
                                                                      more_env: []
                                                                      words: [
                                                                        {<compile>}
                                                                        {($ Id.VSub_DollarName cc)}
                                                                        {($ Id.VSub_DollarName d)}
                                                                        {
                                                                          ($ Id.VSub_DollarName 
static
                                                                          )
                                                                        }
                                                                        {<-o>}
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.exe>
                                                                        }
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.o>
                                                                        }
                                                                        {<-lm>}
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_LessAnd '<&'>
                                                                          loc: (redir_loc.Fd fd:0)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
nullin
                                                                              )
                                                                            }
                                                                        )
                                                                        (Redir
                                                                          op: 
                                                                            <Id.Redir_GreatAnd '>&'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
nullout
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName 
'$executable'
                                                                        >
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
executable
                                                                          )
                                                                        }
                                                                        {($ Id.VSub_DollarName tmp) 
                                                                          <.exe>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _>]
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <report>
                                                                  more_env: []
                                                                  words: [
                                                                    {<report>}
                                                                    {($ Id.VSub_QMark '?')}
                                                                    {<1>}
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName v) 
                                                                        <'() in math lib'>
                                                                      )
                                                                    }
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName v) 
                                                                        <'() not in math lib'>
                                                                      )
                                                                    }
                                                                    {
                                                                      (DQ <'default for function '> 
                                                                        ($ Id.VSub_DollarName v) <'()'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<Id.Lit_Star '*'>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <report>
                                                                  more_env: []
                                                                  words: [
                                                                    {<report>}
                                                                    {<1>}
                                                                    {<1>}
                                                                    {<->}
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName v) 
                                                                        <'() not in default lib(s)'>
                                                                      )
                                                                    }
                                                                    {
                                                                      (DQ <'default for function '> 
                                                                        ($ Id.VSub_DollarName v) <'()'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [28198 28212]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName intrinsic)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_SingleQuote '\''>
                                                      pattern: (pat.Words words:[{(SQ )}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <copy>
                                                          more_env: []
                                                          words: [
                                                            {<copy>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                            {
                                                              (DQ <'\n'> ($ Id.VSub_DollarName tst) 
                                                                <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> 
                                                                ($ Id.VSub_DollarName pre) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'_BEGIN_EXTERNS_\n'> <'extern int foo();\n'> <'_END_EXTERNS_\n'> 
                                                                <
'static int ((*i)())=foo;int main(){return(i==0);}\n'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-c>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName nullout)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'intrinsic='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'intrinsic='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'intrinsic='>
                                                                  name: intrinsic
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {($ Id.VSub_QMark '?')}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName o)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <mth>
                                                      pattern: (pat.Words words:[{<mth>}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <report>
                                                          more_env: []
                                                          words: [
                                                            {<report>}
                                                            {($ Id.VSub_DollarName intrinsic)}
                                                            {<1>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName v) 
                                                                <'() in math lib'>
                                                              )
                                                            }
                                                            {
                                                              (DQ ($ Id.VSub_DollarName v) 
                                                                <'() not in math lib'>
                                                              )
                                                            }
                                                            {
                                                              (DQ <'default for function '> 
                                                                ($ Id.VSub_DollarName v) <'()'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <report>
                                                          more_env: []
                                                          words: [
                                                            {<report>}
                                                            {($ Id.VSub_DollarName intrinsic)}
                                                            {<1>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName v) 
                                                                <'() in default lib(s)'>
                                                              )
                                                            }
                                                            {
                                                              (DQ ($ Id.VSub_DollarName v) 
                                                                <'() not in default lib(s)'>
                                                              )
                                                            }
                                                            {
                                                              (DQ <'default for function '> 
                                                                ($ Id.VSub_DollarName v) <'()'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <mac>
                                          pattern: (pat.Words words:[{<mac>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<mac>} {($ Id.VSub_DollarName v)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'\n'> ($ Id.VSub_DollarName tst) <'\n'> 
                                                    ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName pre) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'#ifdef '> 
                                                    ($ Id.VSub_DollarName v) <'\n'> <'\''> ($ Id.VSub_DollarName m) <':'> ($ Id.VSub_DollarName v) <'\'\n'> <'#endif'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <compile>
                                                  more_env: []
                                                  words: [
                                                    {<compile>}
                                                    {($ Id.VSub_DollarName cc)}
                                                    {<-E>}
                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_LessAnd '<&'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {($ Id.VSub_DollarName nullin)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <grep>
                                                  more_env: []
                                                  words: [
                                                    {<grep>}
                                                    {<-c>}
                                                    {
                                                      (DQ <'\''> ($ Id.VSub_DollarName m) <':'> 
                                                        ($ Id.VSub_DollarName v) <'\''>
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName nullout)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _>]
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_QMark '?')}
                                                {<1>}
                                                {(DQ ($ Id.VSub_DollarName v) <' is a macro'>)}
                                                {(DQ ($ Id.VSub_DollarName v) <' is not a macro'>)}
                                                {(DQ <'default for macro '> ($ Id.VSub_DollarName v))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <mem>
                                          pattern: (pat.Words words:[{<mem>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'i='> (SQ <'$'>) 
                                                          <_iffe_typedef_> ($ Id.VSub_DollarName p)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>} {<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName pre) 
                                                                    <'\n'> ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> 
                                                                    <'static '> ($ Id.VSub_DollarName p) <' i;\n'> <'int n = sizeof(i);'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <is>
                                                              more_env: []
                                                              words: [
                                                                {<is>}
                                                                {<typ>}
                                                                {($ Id.VSub_DollarName p)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Simple
                                                                          blame_tok: <compile>
                                                                          more_env: []
                                                                          words: [
                                                                            {<compile>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
cc
                                                                              )
                                                                            }
                                                                            {<-c>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
tmp
                                                                              ) <.c>
                                                                            }
                                                                          ]
                                                                          redirects: [
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_LessAnd 
'<&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 0
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                  )
                                                                                }
                                                                            )
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_GreatAnd 
'>&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 1
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nullout
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <success>
                                                                      more_env: []
                                                                      words: [{<success>} {<->}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {<_iffe_typedef_> 
                                                                          ($ Id.VSub_DollarName p) <Id.Lit_Equals '='> <1>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'i='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              name: i
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<1>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [28745 28763]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: <failure>
                                                                  more_env: []
                                                                  words: [{<failure>} {<->}]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <eval>
                                                                  more_env: []
                                                                  words: [
                                                                    {<eval>}
                                                                    {<_iffe_typedef_> 
                                                                      ($ Id.VSub_DollarName p) <Id.Lit_Equals '='> <0>
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: <Id.Lit_VarLike 'i='>
                                                                          name: i
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<0>}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'i='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      name: i
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName v) 
                                                                        <' is not a member of '> ($ Id.VSub_DollarName p)
                                                                      )
                                                                    }
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'p='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'p='>
                                                                      name: p
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <'struct '> 
                                                                        ($ Id.VSub_DollarName p)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'i='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      name: i
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<->}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <is>
                                                      more_env: []
                                                      words: [
                                                        {<is>}
                                                        {<mem>}
                                                        {($ Id.VSub_DollarName v)}
                                                        {(DQ ($ Id.VSub_DollarName p))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                            ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'static '> 
                                                            ($ Id.VSub_DollarName p) <' i;\n'> <'int n = sizeof(i.'> ($ Id.VSub_DollarName v) <');'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <compile>
                                                      more_env: []
                                                      words: [
                                                        {<compile>}
                                                        {($ Id.VSub_DollarName cc)}
                                                        {<-c>}
                                                        {($ Id.VSub_DollarName tmp) <.c>}
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_LessAnd '<&'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {($ Id.VSub_DollarName nullin)}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '>&'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName nullout)}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <report>
                                                      more_env: []
                                                      words: [
                                                        {<report>}
                                                        {($ Id.VSub_QMark '?')}
                                                        {<1>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName v) 
                                                            <' is a member of '> ($ Id.VSub_DollarName p)
                                                          )
                                                        }
                                                        {(DQ ($ Id.VSub_DollarName i))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p='>
                                                              name: p
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName v)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'i='> (SQ <'$'>) 
                                                          <_iffe_typedef_> ($ Id.VSub_DollarName p)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>} {<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName pre) 
                                                                    <'\n'> ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> 
                                                                    <'static '> ($ Id.VSub_DollarName p) <' i;\n'> <'int n = sizeof(i);'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <is>
                                                              more_env: []
                                                              words: [
                                                                {<is>}
                                                                {<typ>}
                                                                {($ Id.VSub_DollarName p)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Simple
                                                                          blame_tok: <compile>
                                                                          more_env: []
                                                                          words: [
                                                                            {<compile>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
cc
                                                                              )
                                                                            }
                                                                            {<-c>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
tmp
                                                                              ) <.c>
                                                                            }
                                                                          ]
                                                                          redirects: [
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_LessAnd 
'<&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 0
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                  )
                                                                                }
                                                                            )
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_GreatAnd 
'>&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 1
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nullout
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <success>
                                                                      more_env: []
                                                                      words: [{<success>} {<->}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {<_iffe_typedef_> 
                                                                          ($ Id.VSub_DollarName p) <Id.Lit_Equals '='> <1>
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'i='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              name: i
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<1>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [28985 29003]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: <failure>
                                                                  more_env: []
                                                                  words: [{<failure>} {<->}]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <eval>
                                                                  more_env: []
                                                                  words: [
                                                                    {<eval>}
                                                                    {<_iffe_typedef_> 
                                                                      ($ Id.VSub_DollarName p) <Id.Lit_Equals '='> <0>
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: <Id.Lit_VarLike 'i='>
                                                                          name: i
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<0>}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'i='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      name: i
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName p) 
                                                                        <
' is not a non-opaque struct'
                                                                        >
                                                                      )
                                                                    }
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'p='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'p='>
                                                                      name: p
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <'struct '> 
                                                                        ($ Id.VSub_DollarName p)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'i='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'i='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'i='>
                                                                      name: i
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<->}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <is>
                                                      more_env: []
                                                      words: [
                                                        {<is>}
                                                        {<nos>}
                                                        {(DQ ($ Id.VSub_DollarName p))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                            ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'static '> 
                                                            ($ Id.VSub_DollarName p) <' i;\n'> <'int n = sizeof(i);'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <compile>
                                                                  more_env: []
                                                                  words: [
                                                                    {<compile>}
                                                                    {($ Id.VSub_DollarName cc)}
                                                                    {<-c>}
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                  ]
                                                                  redirects: [
                                                                    (Redir
                                                                      op: <Id.Redir_LessAnd '<&'>
                                                                      loc: (redir_loc.Fd fd:0)
                                                                      arg: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
nullin
                                                                          )
                                                                        }
                                                                    )
                                                                    (Redir
                                                                      op: <Id.Redir_GreatAnd '>&'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
nullout
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName pre) 
                                                                    <'\n'> ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> 
                                                                    <'static '> ($ Id.VSub_DollarName p) <' i;\n'> <'unsigned long f() { return (unsigned long)i; }'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Simple
                                                                          blame_tok: <compile>
                                                                          more_env: []
                                                                          words: [
                                                                            {<compile>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
cc
                                                                              )
                                                                            }
                                                                            {<-c>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
tmp
                                                                              ) <.c>
                                                                            }
                                                                          ]
                                                                          redirects: [
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_LessAnd 
'<&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 0
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                  )
                                                                                }
                                                                            )
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_GreatAnd 
'>&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 1
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nullout
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<1>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [29162 29180]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          name: c
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<0>}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [29119 29137]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'c='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'c='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'c='>
                                                                  name: c
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <report>
                                                      more_env: []
                                                      words: [
                                                        {<report>}
                                                        {($ Id.VSub_DollarName c)}
                                                        {<1>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName p) 
                                                            <' is a non-opaque struct'>
                                                          )
                                                        }
                                                        {(DQ ($ Id.VSub_DollarName i))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <nop>
                                          pattern: (pat.Words words:[{<nop>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <npt>
                                          pattern: (pat.Words words:[{<npt>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<npt>} {($ Id.VSub_DollarName v)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <copy>
                                              more_env: []
                                              words: [
                                                {<copy>}
                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                {
                                                  (DQ <'\n'> ($ Id.VSub_DollarName tst) <'\n'> 
                                                    ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> ($ Id.VSub_DollarName pre) 
                                                    <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'_BEGIN_EXTERNS_\n'> <'struct _iffe_struct { int _iffe_member; };\n'> 
                                                    <'#if _STD_\n'> <'extern struct _iffe_struct* '> ($ Id.VSub_DollarName v) <'(struct _iffe_struct*);\n'> <'#else\n'> 
                                                    <'extern struct _iffe_struct* '> ($ Id.VSub_DollarName v) <'();\n'> <'#endif\n'> <'_END_EXTERNS_\n'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName cc) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> (DQ <' -O '>) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'xx='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'xx='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'xx='>
                                                              name: xx
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {($ Id.VSub_DollarName cc)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {(SQ <'s/ -O / /g'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'xx='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'xx='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'xx='>
                                                              name: xx
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName cc)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <compile>
                                              more_env: []
                                              words: [
                                                {<compile>}
                                                {($ Id.VSub_DollarName xx)}
                                                {<-c>}
                                                {($ Id.VSub_DollarName tmp) <.c>}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_LessAnd '<&'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {($ Id.VSub_DollarName nullin)}
                                                )
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName nullout)}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {<-> ($ Id.VSub_DollarName config)}
                                                {($ Id.VSub_QMark '?')}
                                                {<1>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName v) 
                                                    <'() needs a prototype'>
                                                  )
                                                }
                                                {
                                                  (DQ ($ Id.VSub_DollarName v) 
                                                    <'() does not need a prototype'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <num>
                                          pattern: (pat.Words words:[{<num>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<num>} {($ Id.VSub_DollarName v)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <copy>
                                              more_env: []
                                              words: [
                                                {<copy>}
                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                {
                                                  (DQ <'\n'> ($ Id.VSub_DollarName tst) <'\n'> 
                                                    ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> ($ Id.VSub_DollarName pre) 
                                                    <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'_BEGIN_EXTERNS_\n'> <'int _iffe_int = '> ($ Id.VSub_DollarName v) 
                                                    <' / 2;\n'> <'_END_EXTERNS_\n'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <compile>
                                              more_env: []
                                              words: [
                                                {<compile>}
                                                {($ Id.VSub_DollarName cc)}
                                                {<-c>}
                                                {($ Id.VSub_DollarName tmp) <.c>}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_LessAnd '<&'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {($ Id.VSub_DollarName nullin)}
                                                )
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName nullout)}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_QMark '?')}
                                                {<1>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName v) 
                                                    <' is a numeric constant'>
                                                  )
                                                }
                                                {
                                                  (DQ ($ Id.VSub_DollarName v) 
                                                    <' is not a numeric constant'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <one>
                                          pattern: (pat.Words words:[{<one>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {($ Id.VSub_DollarName a)}
                                                    {($ Id.VSub_DollarName hdr)}
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ <'#include <'> 
                                                                ($ Id.VSub_DollarName i) <'>'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName gothdr) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' - '> ($ Id.VSub_DollarName i) 
                                                                    <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' + '> ($ Id.VSub_DollarName i) 
                                                                    <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {(DQ ($ Id.VSub_DollarName x))}
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Simple
                                                                          blame_tok: <is_hdr>
                                                                          more_env: []
                                                                          words: [
                                                                            {<is_hdr>}
                                                                            {
                                                                              ($ Id.VSub_DollarName x)
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'gothdr='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'gothdr='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'gothdr='
                                                                                >
                                                                              name: gothdr
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName gothdr
                                                                                ) <' + '> ($ Id.VSub_DollarName x)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [29521 29528]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'gothdr='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'gothdr='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'gothdr='
                                                                            >
                                                                          name: gothdr
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
gothdr
                                                                            ) <' - '> ($ Id.VSub_DollarName x)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: 
                                                                    <Id.ControlFlow_Continue 
continue
                                                                    >
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName one)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_DoubleQuote '"'>
                                                          pattern: (pat.Words words:[{(DQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'one='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'one='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'one='>
                                                                      name: one
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName x)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ ($ Id.VSub_DollarName x)) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {(DQ ($ Id.VSub_DollarName one))}
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Simple
                                                                          blame_tok: <compile>
                                                                          more_env: []
                                                                          words: [
                                                                            {<compile>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
cc
                                                                              )
                                                                            }
                                                                            {<-E>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
tmp
                                                                              ) <.c>
                                                                            }
                                                                          ]
                                                                          redirects: [
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_LessAnd 
'<&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 0
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nullin
                                                                                  )
                                                                                }
                                                                            )
                                                                            (Redir
                                                                              op: 
                                                                                <Id.Redir_Great '>'>
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 1
                                                                                )
                                                                              arg: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.i>
                                                                                }
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'c='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'c='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              name: c
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName i)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName c)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'c='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'c='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'c='
                                                                                        >
                                                                                      name: c
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Pipeline
                                                                                            children: [
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
echo
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
echo
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName c
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
sed
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
sed
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (SQ 
                                                                                                      <
's,[\\\\/],[\\\\/],g'
                                                                                                      >
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            ]
                                                                                            ops: [
                                                                                              <
Id.Op_Pipe _
                                                                                              >
                                                                                            ]
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    blame_tok: <sed>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<sed>}
                                                                                      {<-e>}
                                                                                      {
                                                                                        (SQ 
                                                                                          <
'/^#[line \t]*1[ \t][ \t]*"[\\\\\\/].*[\\\\\\/]'
                                                                                          >
                                                                                        ) ($ Id.VSub_DollarName c) (SQ <'"/!d'>)
                                                                                      }
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                        ) <.i>
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_QMark '?'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_QMark '?'> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Break break
                                                                                >
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [29606 29625]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'one='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'one='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'one='>
                                                                      name: one
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName one) 
                                                                        ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName x)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName x))}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <opt>
                                          pattern: (pat.Words words:[{<opt>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'M='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'M='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'M='>
                                                      name: M
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName m)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<opt>} {($ Id.VSub_DollarName a)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName PACKAGE_OPTIONS) 
                                                        <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName a) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<0>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_DollarName c)}
                                                {<1>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName a) <' is set in '> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\$'>
                                                      ch: '$'
                                                    ) <PACKAGE_OPTIONS>
                                                  )
                                                }
                                                {
                                                  (DQ ($ Id.VSub_DollarName a) <' is not set in '> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\$'>
                                                      ch: '$'
                                                    ) <PACKAGE_OPTIONS>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <out>
                                          pattern: (pat.Words words:[{<out>} {<output>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <pth>
                                          pattern: (pat.Words words:[{<pth>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<pth>} {($ Id.VSub_DollarName a)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <pkg>
                                              more_env: []
                                              words: [{<pkg>} {($ Id.VSub_DollarName pth)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'tab='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'tab='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'tab='>
                                                      name: tab
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <'  '>)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'e='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'e='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'e='>
                                                      name: e
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'f='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'f='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'f='>
                                                      name: f
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName pth)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ <'{'>)}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'e='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'e='>
                                                                      name: e
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(DQ (${ Id.VSub_Name nl) <'}'>)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'l='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'l='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'l='>
                                                                      name: l
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<i>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'v='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'v='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'v='>
                                                                      name: v
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        (word_part.EscapedLiteral
                                                                          token: 
                                                                            <Id.Lit_EscapedChar 
'\\$'
                                                                            >
                                                                          ch: '$'
                                                                        ) (${ Id.VSub_Name x)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 't='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 't='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 't='>
                                                                      name: t
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(${ Id.VSub_Name nl) 
                                                                      (${ Id.VSub_Name tab)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'b='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'b='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'b='>
                                                                      name: b
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <'fnd()'> 
                                                                        (${ Id.VSub_Name nl) <'{'> (${ Id.VSub_Name t) <'for '> (${ Id.VSub_Name x) <' in'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ <'}'>)}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'b='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'b='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'b='>
                                                                      name: b
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ (${ Id.VSub_Name b) 
                                                                        (${ Id.VSub_Name t) <do> (${ Id.VSub_Name tab) <'if '> ($ Id.VSub_DollarName exists) <' '> (${ Id.VSub_Name v) <'/'> 
                                                                        (word_part.EscapedLiteral
                                                                          token: 
                                                                            <Id.Lit_EscapedChar 
'\\$'
                                                                            >
                                                                          ch: '$'
                                                                        ) <'{1}'> (${ Id.VSub_Name t) (${ Id.VSub_Name tab) (${ Id.VSub_Name tab) <then> (${ Id.VSub_Name tab) <'f='> 
                                                                        (${ Id.VSub_Name v) <'/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{1}'> (${ Id.VSub_Name t) 
                                                                        (${ Id.VSub_Name tab) (${ Id.VSub_Name tab) (${ Id.VSub_Name tab) <return> (${ Id.VSub_Name t) (${ Id.VSub_Name tab) 
                                                                        (${ Id.VSub_Name tab) <fi>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'e='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'e='>
                                                                      name: e
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ (${ Id.VSub_Name t) <done> 
                                                                        (${ Id.VSub_Name e)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (DQ (${ Id.VSub_Name b) 
                                                                    (${ Id.VSub_Name e)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <fnd>
                                                              more_env: []
                                                              words: [
                                                                {<fnd>}
                                                                {($ Id.VSub_DollarName a)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName f)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_QMark '?'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_QMark '?'> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Break break>
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <->
                                                          pattern: (pat.Words words:[{<->}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'b='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'b='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'b='>
                                                                      name: b
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ (${ Id.VSub_Name b) 
                                                                        (${ Id.VSub_Name t) <do> (${ Id.VSub_Name tab) <'test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                        (${ Id.VSub_Name v) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = \'\' -o -d '> 
                                                                        (word_part.EscapedLiteral
                                                                          token: 
                                                                            <Id.Lit_EscapedChar 
'\\"'
                                                                            >
                                                                          ch: '"'
                                                                        ) (${ Id.VSub_Name v) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' &&'> 
                                                                        (${ Id.VSub_Name t) (${ Id.VSub_Name tab) (${ Id.VSub_Name tab)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {(${ Id.VSub_Name x) <i>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'v='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'v='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'v='>
                                                                      name: v
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ (${ Id.VSub_Name v) 
                                                                        (word_part.EscapedLiteral
                                                                          token: 
                                                                            <Id.Lit_EscapedChar 
'\\$'
                                                                            >
                                                                          ch: '$'
                                                                        ) (${ Id.VSub_Name x)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'b='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'b='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'b='>
                                                                      name: b
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ (${ Id.VSub_Name b) <'for '> 
                                                                        (${ Id.VSub_Name x) <' in'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'e='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'e='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'e='>
                                                                      name: e
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ (${ Id.VSub_Name t) <done> 
                                                                        (${ Id.VSub_Name e)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 't='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 't='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 't='>
                                                                      name: t
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ (${ Id.VSub_Name t) 
                                                                        (${ Id.VSub_Name tab) (${ Id.VSub_Name tab)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName e)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_SingleQuote '\''>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{(SQ )}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <
Id.VSub_DollarName '$exists'
                                                                                    >
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName exists
                                                                                      )
                                                                                    }
                                                                                    {
                                                                                      (${ 
Id.VSub_Name i
                                                                                      ) <'/'> (${ Id.VSub_Name a)
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'f='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'f='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'f='
                                                                                        >
                                                                                      name: f
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (${ 
Id.VSub_Name i
                                                                                      ) <'/'> (${ Id.VSub_Name a)
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Break break
                                                                                >
                                                                            )
                                                                          ]
                                                                          spids: [30180 30193]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName i)
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <'/'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [{<'/'>} {<.>}]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'b='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'b='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'b='
                                                                                        >
                                                                                      name: b
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        (${ 
Id.VSub_Name b
                                                                                        ) <' \'\''>
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'b='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'b='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'b='
                                                                                        >
                                                                                      name: b
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        (${ 
Id.VSub_Name b
                                                                                        ) <' /'> (${ Id.VSub_Name i)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName f)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName set)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ <' '>)}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'f='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'f='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'f='>
                                                                      name: f
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName a)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'f='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'f='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'f='>
                                                                      name: f
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName set)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName f)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<0>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'f='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'f='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'f='>
                                                              name: f
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                  ch: '"'
                                                                ) ($ Id.VSub_DollarName f) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_DollarName c)}
                                                {(DQ ($ Id.VSub_DollarName f))}
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name note>
                                                      var_name: note
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op: <Id.VTest_ColonHyphen _>
                                                          arg_word: 
                                                            {($ Id.VSub_DollarName a) <' path'>}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  )
                                                }
                                                {(DQ ($ Id.VSub_DollarName a) <' path not found'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <run>
                                          pattern: (pat.Words words:[{<run>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [{<is>} {<run>} {($ Id.VSub_DollarName a)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<Id.KW_Bang '!'>}
                                                            {<-r>}
                                                            {($ Id.VSub_DollarName a)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <failure>
                                                      more_env: []
                                                      words: [{<failure>} {<not>} {<found>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName verbose)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName command) 
                                                                    <': '> ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_DollarName a) <': not found'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '>&'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {($ Id.VSub_DollarName stderr)}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  spids: [30398 30409]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <noisy>
                                              more_env: []
                                              words: [{<noisy>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_Star '*'> <.c>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <rm>
                                                      more_env: []
                                                      words: [
                                                        {<rm>}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName tmp) <.exe>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (BraceGroup
                                                      left: <Id.Lit_LBrace '{'>
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName tst) <'\n'> 
                                                                ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName std) <'\n'> ($ Id.VSub_DollarName usr) <'\n'> ($ Id.VSub_DollarName inc)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <cat>
                                                          more_env: []
                                                          words: [{<cat>} {($ Id.VSub_DollarName a)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                        )
                                                      ]
                                                      right: <Id.Lit_RBrace '}'>
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <compile>
                                                          more_env: []
                                                          words: [
                                                            {<compile>}
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-o>}
                                                            {($ Id.VSub_DollarName tmp) <.exe>}
                                                            {($ Id.VSub_DollarName tmp) <.c>}
                                                            {($ Id.VSub_DollarName lib)}
                                                            {($ Id.VSub_DollarName deflib)}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {($ Id.VSub_DollarName stderr)}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '2>&'>
                                                              loc: (redir_loc.Fd fd:2)
                                                              arg: {($ Id.VSub_DollarName stderr)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: 
                                                            <Id.VSub_DollarName '$executable'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName executable)}
                                                            {($ Id.VSub_DollarName tmp) <.exe>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <execute>
                                                          more_env: []
                                                          words: [
                                                            {<execute>}
                                                            {($ Id.VSub_DollarName tmp) <.exe>}
                                                            {($ Id.VSub_DollarName opt)}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_LessAnd '<&'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName nullin)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_Star '*'> <.sh>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (BraceGroup
                                                      left: <Id.Lit_LBrace '{'>
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <copy>
                                                          more_env: []
                                                          words: [
                                                            {<copy>}
                                                            {<->}
                                                            {
                                                              (DQ <':\n'> <'set '> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                  ch: '"'
                                                                ) <'cc=\''> ($ Id.VSub_DollarName cc) <'\' executable=\''> ($ Id.VSub_DollarName executable) <'\' id=\''> 
                                                                ($ Id.VSub_DollarName m) <'\' static=\''> ($ Id.VSub_DollarName static) <'\' tmp=\''> ($ Id.VSub_DollarName tmp) <'\''> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                  ch: '"'
                                                                ) <' '> ($ Id.VSub_DollarName opt) <' '> ($ Id.VSub_DollarName hdr) <' '> ($ Id.VSub_DollarName test)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <cat>
                                                          more_env: []
                                                          words: [{<cat>} {($ Id.VSub_DollarName a)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.sh>}
                                                        )
                                                      ]
                                                      right: <Id.Lit_RBrace '}'>
                                                    )
                                                    (command.Simple
                                                      blame_tok: <chmod>
                                                      more_env: []
                                                      words: [
                                                        {<chmod>}
                                                        {<Id.Lit_Other '+'> <x>}
                                                        {($ Id.VSub_DollarName tmp) <.sh>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Subshell
                                                      left: <Id.Op_LParen _>
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <.>
                                                          more_env: []
                                                          words: [
                                                            {<.>}
                                                            {($ Id.VSub_DollarName tmp) <.sh>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      right: <Id.Right_Subshell _>
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_LessAnd '<&'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {($ Id.VSub_DollarName nullin)}
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <false>
                                                      more_env: []
                                                      words: [{<false>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_QMark '?')})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: (pat.Words words:[{<0>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <success>
                                                      more_env: []
                                                      words: [{<success>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <failure>
                                                      more_env: []
                                                      words: [{<failure>} {<cannot>} {<run>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName verbose)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <0>
                                                          pattern: (pat.Words words:[{<0>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName command) 
                                                                    <': '> ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_DollarName a) <': cannot run'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '>&'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {($ Id.VSub_DollarName stderr)}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <siz>
                                          pattern: (pat.Words words:[{<siz>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName p) <' '>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [
                                                {<is>}
                                                {<siz>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName x) 
                                                    ($ Id.VSub_DollarName v)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (BraceGroup
                                              left: <Id.Lit_LBrace '{'>
                                              children: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: 
                                                        {($ Id.VSub_DollarName p) <Id.Lit_Colon ':'> 
                                                          ($ Id.VSub_DollarName v)
                                                        }
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <long>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<long> <Id.Lit_Colon ':'> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                              <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <_0123456789> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'int['> <_0123456789> 
                                                              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                                ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'static '> 
                                                                ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' i;\n'> ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' f() {\n'> 
                                                                ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' v; i = 1; v = i;'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <
'i = v * i; i = i / v; v = v + i; i = i - v;'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName v)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <float>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<float>} {<double>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: []
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<Id.Lit_Star '*'>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <echo>
                                                                  more_env: []
                                                                  words: [
                                                                    {<echo>}
                                                                    {
                                                                      (DQ 
                                                                        <
'v <<= 4; i = v >> 2; i = 10; i = v % i; i |= v; v ^= i; i = 123; v &= i;'
                                                                        >
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [{<echo>} {(DQ <'return v; }'>)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                                ($ Id.VSub_DollarName inc) <'\n'> <'struct xxx { '> ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' mem; };\n'> 
                                                                <'static struct xxx v;\n'> <'struct xxx* f() { return &v; }'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName x)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_DoubleQuote '"'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {(DQ )}
                                                            {(DQ <'struct '>)}
                                                            {(DQ <'union '>)}
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {(DQ <'int g() { return 0; }'>)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ <'int g() { return sizeof('> 
                                                                ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <')<=sizeof('> ($ Id.VSub_DollarName v) <'); }'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <copy>
                                                  more_env: []
                                                  words: [
                                                    {<copy>}
                                                    {<->}
                                                    {
                                                      (DQ <'\n'> <'int main() {\n'> <'\t\tf();\n'> 
                                                        <'\t\tg();\n'> <'\t\tprintf('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'%u'> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\\\'>
                                                          ch: '\\'
                                                        ) <n> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', sizeof('> 
                                                        ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <'));\n'> <'\t\treturn 0;\n'> <'}'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                )
                                              ]
                                              right: <Id.Lit_RBrace '}'>
                                            )
                                            (command.Simple
                                              blame_tok: <rm>
                                              more_env: []
                                              words: [
                                                {<rm>}
                                                {<-f>}
                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                {($ Id.VSub_DollarName tmp) <.dat>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <compile>
                                                              more_env: []
                                                              words: [
                                                                {<compile>}
                                                                {($ Id.VSub_DollarName cc)}
                                                                {<-o>}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                                {($ Id.VSub_DollarName lib)}
                                                                {($ Id.VSub_DollarName deflib)}
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_LessAnd '<&'>
                                                                  loc: (redir_loc.Fd fd:0)
                                                                  arg: {($ Id.VSub_DollarName nullin)}
                                                                )
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '>&'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName nullout)}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: 
                                                                <Id.VSub_DollarName '$executable'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName executable)}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <execute>
                                                              more_env: []
                                                              words: [
                                                                {<execute>}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName tmp) 
                                                                      <.dat>
                                                                    }
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'z='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'z='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'z='>
                                                              name: z
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <cat>
                                                                    more_env: []
                                                                    words: [
                                                                      {<cat>}
                                                                      {($ Id.VSub_DollarName tmp) 
                                                                        <.dat>
                                                                      }
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'c='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'c='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'c='>
                                                              name: c
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<0>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [30979 31025]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'z='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'z='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'z='>
                                                          name: z
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<0>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'c='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'c='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'c='>
                                                          name: c
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_DollarName c)}
                                                {(DQ ($ Id.VSub_DollarName z))}
                                                {
                                                  (DQ <'sizeof('> ($ Id.VSub_DollarName x) 
                                                    ($ Id.VSub_DollarName v) <')'>
                                                  )
                                                }
                                                {
                                                  (DQ ($ Id.VSub_DollarName x) 
                                                    ($ Id.VSub_DollarName v) <' not a type with known size'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <sym>
                                          pattern: (pat.Words words:[{<sym>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName test)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName v)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName test)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                    ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'\'=\' '> 
                                                    ($ Id.VSub_DollarName x) <' \'=\''>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <compile>
                                                  more_env: []
                                                  words: [
                                                    {<compile>}
                                                    {($ Id.VSub_DollarName cc)}
                                                    {<-E>}
                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_LessAnd '<&'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {($ Id.VSub_DollarName nullin)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <sed>
                                                  more_env: []
                                                  words: [
                                                    {<sed>}
                                                    {<-e>}
                                                    {(DQ <'/\'=\'/!d'>)}
                                                    {<-e>}
                                                    {(DQ <'s/\'=\'//g'>)}
                                                    {<-e>}
                                                    {(SQ <'s/[ \t]//g'>)}
                                                    {<-e>}
                                                    {(SQ <'s/((([^()]*)))->/->/g'>)}
                                                    {<-e>}
                                                    {(SQ <'s/(([^()]*))->/->/g'>)}
                                                    {<-e>}
                                                    {(SQ <'s/([^()]*)->/->/g'>)}
                                                    {<-e>}
                                                    {
                                                      (SQ 
                                                        <
's/\\([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*\\)\\[/\\\n'
                                                        > <'ary \\1[/g'>
                                                      )
                                                    }
                                                    {<-e>}
                                                    {
                                                      (SQ 
                                                        <
's/\\([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*\\)(/\\\n'
                                                        > <'fun \\1[/g'>
                                                      )
                                                    }
                                                    {<-e>}
                                                    {
                                                      (SQ 
                                                        <
's/\\*->\\([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/->\\\n'
                                                        > <'ptr \\1/g'>
                                                      )
                                                    }
                                                    {<-e>}
                                                    {
                                                      (SQ 
                                                        <
's/->\\([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/->\\\n'
                                                        > <'reg \\1/g'>
                                                      )
                                                    }
                                                    {<-e>}
                                                    {
                                                      (DQ <'/^'> ($ Id.VSub_DollarName v) 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\$'>
                                                          ch: '$'
                                                        ) <'/d'>
                                                      )
                                                    }
                                                    {<-e>}
                                                    {
                                                      (SQ 
                                                        <
's/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*$/\\\n'
                                                        > <'nam &/g'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <sed>
                                                  more_env: []
                                                  words: [{<sed>} {<-e>} {(SQ <'/^... /!d'>)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <sort>
                                                  more_env: [
                                                    (EnvPair
                                                      left: <Id.Lit_VarLike 'LC_ALL='>
                                                      name: LC_ALL
                                                      val: {<C>}
                                                    )
                                                  ]
                                                  words: [{<sort>} {<-u>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <sed>
                                                  more_env: []
                                                  words: [
                                                    {<sed>}
                                                    {<-e>}
                                                    {
                                                      (SQ 
                                                        <
's/\\(...\\) \\([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*\\).*/#ifndef _\\1_'
                                                        >
                                                      ) ($ Id.VSub_DollarName v) (SQ <'\\\n'> <'#define _\\1_'>) ($ Id.VSub_DollarName v) 
                                                      (SQ <' \\2\\\n'> <'#define _\\1_'>) ($ Id.VSub_DollarName v) (SQ <'_str "\\2"\\\n'> <'#endif/'>)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [
                                                <Id.Op_Pipe _>
                                                <Id.Op_Pipe _>
                                                <Id.Op_Pipe _>
                                                <Id.Op_Pipe _>
                                              ]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <typ>
                                          pattern: (pat.Words words:[{<typ>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: (pat.Words words:[{(DQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName p) <' '>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <is>
                                              more_env: []
                                              words: [
                                                {<is>}
                                                {<typ>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName x) 
                                                    ($ Id.VSub_DollarName v)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (BraceGroup
                                              left: <Id.Lit_LBrace '{'>
                                              children: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: 
                                                        {($ Id.VSub_DollarName p) <Id.Lit_Colon ':'> 
                                                          ($ Id.VSub_DollarName v)
                                                        }
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <long>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<long> <Id.Lit_Colon ':'> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                              <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <_0123456789> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'int['> <_0123456789> 
                                                              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                                ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'static '> 
                                                                ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' i;\n'> ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' f() {\n'> 
                                                                ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' v; i = 1; v = i;'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <
'i = v * i; i = i / v; v = v + i; i = i - v;'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName v)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <float>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<float>} {<double>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: []
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<Id.Lit_Star '*'>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <echo>
                                                                  more_env: []
                                                                  words: [
                                                                    {<echo>}
                                                                    {
                                                                      (DQ 
                                                                        <
'v <<= 4; i = v >> 2; i = 10; i = v % i; i |= v; v ^= i; i = 123; v &= i;'
                                                                        >
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [{<echo>} {(DQ <'return v; }'>)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName pre) <'\n'> 
                                                                ($ Id.VSub_DollarName tst) <'\n'> ($ Id.VSub_DollarName ext) <'\n'> ($ Id.VSub_DollarName inc) <'\n'> <'struct xxx { '> 
                                                                ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <' mem; };\n'> <'static struct xxx v;\n'> <'struct xxx* f() { return &v; }'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName x)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_DoubleQuote '"'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {(DQ )}
                                                            {(DQ <'struct '>)}
                                                            {(DQ <'union '>)}
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {(DQ <'int main() { f(); return 0; }'>)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <'int main() { f(); return sizeof('> ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName v) <')<=sizeof('> ($ Id.VSub_DollarName v) <'); }'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                )
                                              ]
                                              right: <Id.Lit_RBrace '}'>
                                            )
                                            (command.Simple
                                              blame_tok: <rm>
                                              more_env: []
                                              words: [{<rm>} {<-f>} {($ Id.VSub_DollarName tmp) <.exe>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <compile>
                                                  more_env: []
                                                  words: [
                                                    {<compile>}
                                                    {($ Id.VSub_DollarName cc)}
                                                    {<-o>}
                                                    {($ Id.VSub_DollarName tmp) <.exe>}
                                                    {($ Id.VSub_DollarName tmp) <.c>}
                                                    {($ Id.VSub_DollarName lib)}
                                                    {($ Id.VSub_DollarName deflib)}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_LessAnd '<&'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {($ Id.VSub_DollarName nullin)}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName nullout)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$executable'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName executable)}
                                                    {($ Id.VSub_DollarName tmp) <.exe>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <execute>
                                                  more_env: []
                                                  words: [
                                                    {<execute>}
                                                    {($ Id.VSub_DollarName tmp) <.exe>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                            )
                                            (command.Simple
                                              blame_tok: <report>
                                              more_env: []
                                              words: [
                                                {<report>}
                                                {($ Id.VSub_QMark '?')}
                                                {<1>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName x) 
                                                    ($ Id.VSub_DollarName v) <' is a type'>
                                                  )
                                                }
                                                {
                                                  (DQ ($ Id.VSub_DollarName x) 
                                                    ($ Id.VSub_DollarName v) <' is not a type'>
                                                  )
                                                }
                                                {
                                                  (DQ <'default for type '> ($ Id.VSub_DollarName x) 
                                                    ($ Id.VSub_DollarName v)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <val>
                                          pattern: (pat.Words words:[{<val>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{(SQ <'"'>) <Id.Lit_Star '*'> (SQ <'"'>)}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {($ Id.VSub_DollarName arg) 
                                                          <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') ($ Id.VSub_DollarName val) 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\\''>
                                                            ch: '\''
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {($ Id.VSub_DollarName arg) 
                                                          <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName val) 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <ver>
                                          pattern: (pat.Words words:[{<ver>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'result='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'result='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'result='>
                                                      name: result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<FAILURE>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'result='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'result='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'result='>
                                                      name: result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<SUCCESS>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<->}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName file) ($ Id.VSub_DollarName line) <': '> ($ Id.VSub_DollarName o) <': unknown feature test'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName stderr)}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'status='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'status='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'status='>
                                                      name: status
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName not)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName result)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <FAILURE>
                                  pattern: (pat.Words words:[{<FAILURE>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'result='>
                                              name: result
                                            )
                                          op: assign_op.Equal
                                          rhs: {<SUCCESS>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'result='>
                                              name: result
                                            )
                                          op: assign_op.Equal
                                          rhs: {<FAILURE>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName result)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <FAILURE>
                          pattern: (pat.Words words:[{<FAILURE>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'user_pf='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'user_pf='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'user_pf='>
                                      name: user_pf
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName fail)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'user_yn='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'user_yn='>
                                      name: user_yn
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName no)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'user_pf='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'user_pf='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'user_pf='>
                                      name: user_pf
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName pass)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'user_yn='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'user_yn='>
                                      name: user_yn
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName yes)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName user_pf)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [{<eval>} {(DQ ($ Id.VSub_DollarName user_pf))}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_LessAnd '<&'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {($ Id.VSub_DollarName nullin)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName user_yn)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName def)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName note)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName user_yn)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> ($ Id.VSub_DollarName nl) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'user_yn='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'user_yn='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'user_yn='>
                                                              name: user_yn
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ <'/* '> ($ Id.VSub_DollarName note) 
                                                                <' */'> ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName user_yn)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'user_yn='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'user_yn='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'user_yn='>
                                                              name: user_yn
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName user_yn) 
                                                                <'\t/* '> ($ Id.VSub_DollarName note) <' */'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <copy>
                              more_env: []
                              words: [{<copy>} {<->} {(DQ ($ Id.VSub_DollarName user_yn))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {($ Id.VSub_DollarName ifelse) <Id.Lit_Colon ':'> 
                              ($ Id.VSub_DollarName result)
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <TEST>
                          pattern: (pat.Words words:[{<TEST> <Id.Lit_Colon ':'> <SUCCESS>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ifelse='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ifelse='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifelse='> name:ifelse)
                                  op: assign_op.Equal
                                  rhs: {<KEEP>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <TEST>
                          pattern: (pat.Words words:[{<TEST> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ifelse='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ifelse='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifelse='> name:ifelse)
                                  op: assign_op.Equal
                                  rhs: {<SKIP>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {($ Id.VSub_DollarName group) <Id.Lit_Colon ':'> 
                              ($ Id.VSub_DollarName result)
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Colon ':'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <SUCCESS>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {(SQ )}
                        {($ Id.VSub_DollarName groups)}
                        {(SQ )}
                        {(DQ ($ Id.VSub_At '@'))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'hdr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'hdr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hdr='> name:hdr)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName com_hdr)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'lib='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'lib='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName com_lib)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'mac='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'mac='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mac='> name:mac)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName com_mac)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'opt='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'opt='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt='> name:opt)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName com_opt)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pth='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pth='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pth='> name:pth)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName com_pth)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'test='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'test='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test='> name:test)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName com_test)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cc='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cc='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName occ) <' '> ($ Id.VSub_DollarName includes))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'group='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'group='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'group='> name:group)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'groups='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'groups='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'groups='> name:groups)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <shift>
                                          more_env: []
                                          words: [{<shift>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\('>
                                            ch: '('
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')') 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\{'>
                                            ch: '{'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'> ch:'}') 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\ '>
                                            ch: ' '
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\t') <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <pth>
                                          pattern: (pat.Words words:[{<pth>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'pth='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'pth='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'pth='>
                                                      name: pth
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName pth) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName test)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'test='>
                                                              name: test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 1)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'test='>
                                                              name: test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName test) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'group='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'group='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'group='>
                                              name: group
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName group) ($ Id.VSub_Number 1)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'groups='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'groups='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'groups='>
                                              name: groups
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                ($ Id.VSub_Number 1)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-l>
                                  pattern: (pat.Words words:[{<-l> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'groups='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'groups='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      name: groups
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lib='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lib='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      name: lib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Other '+'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Other '+'> <l> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <bsh>
                                          pattern: (pat.Words words:[{<bsh>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'x='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'x='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'x='>
                                                      name: x
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {<X> ($ Id.VSub_Number 1)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <sed>
                                                                more_env: []
                                                                words: [{<sed>} {(SQ <'s/X+/-/'>)}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [{<eval>} {(SQ <'x=-${1#+}'>)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'groups='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'groups='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      name: groups
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                        ($ Id.VSub_DollarName x)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lib='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lib='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      name: lib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                        ($ Id.VSub_DollarName x)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <->
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<-> <Id.Lit_Star '*'>}
                                        {<Id.Lit_Other '+'> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'groups='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'groups='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      name: groups
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <run>
                                                  pattern: (pat.Words words:[{<run>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'opt='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'opt='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'opt='>
                                                              name: opt
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName opt) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Number 1)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <-D>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<-D> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'mac='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'mac='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'mac='>
                                                                      name: mac
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName mac) 
                                                                        <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'cc='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'cc='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'cc='>
                                                                      name: cc
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName cc) 
                                                                        <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <aAxX> 
                                          <Id.Lit_RBracket ']'>
                                        }
                                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <dD> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'>
                                        }
                                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <lL> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <iI> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <bB> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'groups='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'groups='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      name: groups
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lib='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lib='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      name: lib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <.> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\\\'>
                                            ch: '\\'
                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'groups='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'groups='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      name: groups
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <pth>
                                                  pattern: (pat.Words words:[{<pth>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'pth='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'pth='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'pth='>
                                                              name: pth
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName pth) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'hdr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'hdr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'hdr='>
                                                              name: hdr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName hdr) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName group)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'groups='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'groups='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'groups='>
                                                      name: groups
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName groups) <' '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName op)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <pth>
                                                  pattern: (pat.Words words:[{<pth>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'pth='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'pth='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'pth='>
                                                              name: pth
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName pth) <' '> 
                                                                ($ Id.VSub_Number 1)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName test)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'test='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'test='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'test='>
                                                                      name: test
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_Number 1)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'test='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'test='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'test='>
                                                                      name: test
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName test) 
                                                                        <' '> ($ Id.VSub_Number 1)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
  ]
)