(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:common_objpfx)
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [57]
        )
      ]
      spids: [57]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:run_program_prefix_before_env)
          op: Equal
          rhs: {($ VSub_Number '$2')}
          spids: [60]
        )
      ]
      spids: [60]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:run_program_env)
          op: Equal
          rhs: {($ VSub_Number '$3')}
          spids: [63]
        )
      ]
      spids: [63]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:run_program_prefix_after_env)
          op: Equal
          rhs: {($ VSub_Number '$4')}
          spids: [66]
        )
      ]
      spids: [66]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_program_prefix)
          op: Equal
          rhs: {($ VSub_Number '$5')}
          spids: [69]
        )
      ]
      spids: [69]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:datafile)
          op: Equal
          rhs: {($ VSub_Number '$6')}
          spids: [72]
        )
      ]
      spids: [72]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:here)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick '`'>
                spids: [77 79]
              )
            }
          spids: [76]
        )
      ]
      spids: [76]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:lang)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(sed)} {(-e)} {(SQ <'/^#/d'>)} {(-e)} {(SQ <'/^$/d'>)} {(-e)} 
                            {(SQ <'/^C\t/d'>)} {(-e)} {(SQ <'/^tstfmon/d'>)} {(-e)} {(SQ <'s/^\\([^\t]*\\).*/\\1/'>)} {($ VSub_Name '$datafile')}
                          )
                          (C {(sort)})
                          (C {(uniq)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [83 125]
              )
            }
          spids: [82]
        )
      ]
      spids: [82]
    )
    (ForEach
      iter_name: cns
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (AndOr
                    ops: [Op_DAmp]
                    children: [(C {(cd)} {(./tst-fmon-locales)}) (C {(ls)} {(tstfmon_) (Lit_Other '*')})]
                  )
                ]
              )
            left_token: <Left_Backtick '`'>
            spids: [137 148]
          )
        }
      ]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cn)
                  op: Equal
                  rhs: {(tst-fmon-locales/) ($ VSub_Name '$cns')}
                  spids: [154]
                )
              ]
              spids: [154]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fn)
                  op: Equal
                  rhs: {(charmaps/ISO-8859-1)}
                  spids: [159]
                )
              ]
              spids: [159]
            )
            (C {(${ VSub_Name run_program_prefix_before_env)} {(${ VSub_Name run_program_env)} 
              {(Lit_VarLike 'I18NPATH=') (.)} {(${ VSub_Name run_program_prefix_after_env)} {(${ VSub_Name common_objpfx) (locale/localedef)} 
              {(--quiet)} {(-i)} {($ VSub_Name '$cn')} {(-f)} {($ VSub_Name '$fn')} 
              {(${ VSub_Name common_objpfx) (localedata/) ($ VSub_Name '$cns')}
            )
          ]
          spids: [151 207]
        )
      spids: [136 149]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:errcode) op:Equal rhs:{(0)} spids:[213])]
      spids: [213]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [
        (Sentence
          child: 
            (SimpleCommand
              words: [{(read)} {(locale)} {(format)} {(value)} {(expect)}]
              more_env: [(env_pair name:IFS val:{(DQ ('\t'))} spids:[221])]
            )
          terminator: <Op_Semi ';'>
        )
      ]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Name '$locale'))}
              arms: [
                (case_arm
                  pat_list: [{(SQ <'#'>) (Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [248 252 256 16777215]
                )
              ]
              spids: [240 246 258]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$format'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expect)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ ($ VSub_Name '$expect'))})
                                          (C {(sed)} {(SQ <'s/^\\"\\(.*\\)\\"$/\\1/'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [278 292]
                              )
                            }
                          spids: [277]
                        )
                      ]
                      spids: [277]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (SimpleCommand
                          words: [
                            {(${ VSub_Name test_program_prefix)}
                            {(${ VSub_Name common_objpfx) (localedata/tst-fmon)}
                            {(DQ ($ VSub_Name '$locale'))}
                            {(DQ ($ VSub_Name '$format'))}
                            {(DQ ($ VSub_Name '$value'))}
                            {(DQ ($ VSub_Name '$expect'))}
                          ]
                          redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/dev/null)})]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:errcode)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [329]
                            )
                          ]
                          spids: [329]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 274]
                )
              ]
              spids: [16777215 333]
            )
          ]
          spids: [237 335]
        )
      redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Name '$datafile')})]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$errcode')})
  ]
)