(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-e>})
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:common_objpfx)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [57]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<shift>})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:localedef_before_env)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [63]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<shift>})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:run_program_env)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [69]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<shift>})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:localedef_after_env)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [75]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<shift>})
      ]
    )
    (command.ShFunction
      name: test_locale
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:charmap)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [90]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:input)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [94]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:out)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$3')}
                  spids: [98]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rep)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$4')}
                  spids: [102]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {($ Id.VSub_DollarName '$rep')})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:rep)
                          op: assign_op.Equal
                          rhs: {(DQ <'--repertoire-map '> ($ Id.VSub_DollarName '$rep'))}
                          spids: [116]
                        )
                      ]
                    )
                  ]
                  spids: [106 113]
                )
              ]
            )
            (C {(${ Id.VSub_Name localedef_before_env)} {(${ Id.VSub_Name run_program_env)} 
              {<Id.Lit_VarLike 'I18NPATH='> <.>} {(${ Id.VSub_Name localedef_after_env)} {<--quiet>} {<-c>} {<-f>} {($ Id.VSub_DollarName '$charmap')} 
              {<-i>} {($ Id.VSub_DollarName '$input')} {(${ Id.VSub_Name rep)} 
              {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$out')}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'Charmap: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (${ Id.VSub_Name charmap) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' Inputfile: '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (${ Id.VSub_Name input) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                        )
                      } 
                      {
                        (DQ <'Outputdir: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (${ Id.VSub_Name out) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' failed'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [173 186]
                )
              ]
              else_action: [
                (C {<echo>} {(DQ <'locale '> ($ Id.VSub_DollarName '$out') <' generated succesfully'>)})
              ]
            )
          ]
        )
    )
    (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:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)