(CommandList
  children: [
    (C {(set)} {(-e)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:common_objpfx)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [57]
            )
          ]
          spids: [57]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:localedef_before_env)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [63]
            )
          ]
          spids: [63]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:run_program_env)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [69]
            )
          ]
          spids: [69]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:localedef_after_env)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [75]
            )
          ]
          spids: [75]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (FuncDef
      name: test_locale
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:charmap)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [90]
                )
              ]
              spids: [90]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:input)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [94]
                )
              ]
              spids: [94]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [98]
                )
              ]
              spids: [98]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rep)
                  op: Equal
                  rhs: {($ VSub_Number '$4')}
                  spids: [102]
                )
              ]
              spids: [102]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(test)} {($ VSub_Name '$rep')}) terminator:<Op_Semi ';'>)]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:rep)
                          op: Equal
                          rhs: {(DQ ('--repertoire-map ') ($ VSub_Name '$rep'))}
                          spids: [116]
                        )
                      ]
                      spids: [116]
                    )
                  ]
                  spids: [-1 113]
                )
              ]
              spids: [-1 123]
            )
            (C {(${ VSub_Name localedef_before_env)} {(${ VSub_Name run_program_env)} 
              {(Lit_VarLike 'I18NPATH=') (.)} {(${ VSub_Name localedef_after_env)} {(--quiet)} {(-c)} {(-f)} {($ VSub_Name '$charmap')} {(-i)} 
              {($ VSub_Name '$input')} {(${ VSub_Name rep)} {(${ VSub_Name common_objpfx) (localedata/) ($ VSub_Name '$out')}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('Charmap: ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (${ VSub_Name charmap) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' Inputfile: ') 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name input) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                        )
                      } 
                      {
                        (DQ ('Outputdir: ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (${ VSub_Name out) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' failed')
                        )
                      }
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 186]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ('locale ') ($ VSub_Name '$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)})
    (C {(exit)} {(0)})
  ]
)