(command.CommandList
  children: [
    (C {(set)} {(-e)})
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:common_objpfx spids:[57])
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [57]
                )
              ]
              spids: [57]
            )
          terminator: <Op_Semi ';'>
        )
        (C {(shift)})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:localedef_before_env spids:[63])
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [63]
                )
              ]
              spids: [63]
            )
          terminator: <Op_Semi ';'>
        )
        (C {(shift)})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:run_program_env spids:[69])
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [69]
                )
              ]
              spids: [69]
            )
          terminator: <Op_Semi ';'>
        )
        (C {(shift)})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:localedef_after_env spids:[75])
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [75]
                )
              ]
              spids: [75]
            )
          terminator: <Op_Semi ';'>
        )
        (C {(shift)})
      ]
    )
    (command.FuncDef
      name: test_locale
      body: 
        (command.BraceGroup
          children: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:charmap spids:[90])
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [90]
                )
              ]
              spids: [90]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:input spids:[94])
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [94]
                )
              ]
              spids: [94]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:out spids:[98])
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [98]
                )
              ]
              spids: [98]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:rep spids:[102])
                  op: Equal
                  rhs: {($ VSub_Number '$4')}
                  spids: [102]
                )
              ]
              spids: [102]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {(test)} {($ VSub_DollarName '$rep')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:rep spids:[116])
                          op: Equal
                          rhs: {(DQ ('--repertoire-map ') ($ VSub_DollarName '$rep'))}
                          spids: [116]
                        )
                      ]
                      spids: [116]
                    )
                  ]
                  spids: [16777215 113]
                )
              ]
              spids: [16777215 123]
            )
            (C {(${ VSub_Name localedef_before_env)} {(${ VSub_Name run_program_env)} 
              {(Lit_VarLike 'I18NPATH=') (.)} {(${ VSub_Name localedef_after_env)} {(--quiet)} {(-c)} {(-f)} {($ VSub_DollarName '$charmap')} {(-i)} 
              {($ VSub_DollarName '$input')} {(${ VSub_Name rep)} {(${ VSub_Name common_objpfx) (localedata/) ($ VSub_DollarName '$out')}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('Charmap: ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (${ VSub_Name charmap) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' Inputfile: ') 
                          (word_part.EscapedLiteralPart
                            token: <Lit_EscapedChar '\\"'>
                          ) (${ VSub_Name input) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                        )
                      } 
                      {
                        (DQ ('Outputdir: ') 
                          (word_part.EscapedLiteralPart
                            token: <Lit_EscapedChar '\\"'>
                          ) (${ VSub_Name out) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' failed')
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {(1)}
                    )
                  ]
                  spids: [16777215 186]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ('locale ') ($ VSub_DollarName '$out') (' generated succesfully'))})
              ]
              spids: [224 236]
            )
          ]
          spids: [87]
        )
      spids: [82 86]
    )
    (C {(test_locale)} {(IBM437)} {(de_DE)} {(de_DE.437)})
    (C {(test_locale)} {(tests/test1.cm)} {(tests/test1.def)} {(test1)})
    (C {(test_locale)} {(tests/test2.cm)} {(tests/test2.def)} {(test2)})
    (C {(test_locale)} {(tests/test3.cm)} {(tests/test3.def)} {(test3)})
    (C {(test_locale)} {(tests/test4.cm)} {(tests/test4.def)} {(test4)})
    (C {(test_locale)} {(tests/test5.cm)} {(tests/test5.def)} {(test5)} {(tests/test5.ds)})
    (C {(test_locale)} {(tests/test6.cm)} {(tests/test6.def)} {(test6)} {(tests/test6.ds)})
    (C {(test_locale)} {(tests/test7.cm)} {(tests/test7.def)} {(test7)})
    (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)