(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:common_objpfx)
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [59]
        )
      ]
      spids: [59]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:objpfx) op:Equal rhs:{($ VSub_Number '$2')} spids:[62])]
      spids: [62]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_program_prefix)
          op: Equal
          rhs: {($ VSub_Number '$3')}
          spids: [65]
        )
      ]
      spids: [65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:charset) op:Equal rhs:{($ VSub_Number '$4')} spids:[68])]
      spids: [68]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:charmap) op:Equal rhs:{($ VSub_Number '$5')} spids:[71])]
      spids: [71]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:LC_ALL) op:Equal rhs:{(C)} spids:[78])]
      spids: [78]
    )
    (C {(export)} {(LC_ALL)})
    (C {(set)} {(-e)})
    (SimpleCommand
      words: [
        {(./tst-table-charmap.sh)}
        {
          (BracedVarSub
            token: <VSub_Name charmap>
            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{($ VSub_Name '$charset')})
            spids: [96 100]
          )
        }
      ]
      redirects: [
        (Redir
          op: <Redir_Less '<'>
          fd: 16777215
          arg_word: 
            {(../localedata/charmaps/) 
              (BracedVarSub
                token: <VSub_Name charmap>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{($ VSub_Name '$charset')})
                spids: [107 111]
              )
            }
        )
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)}
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(${ VSub_Name charset)} {(Lit_Other '=')} {(GB18030)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(grep)} {(SQ <'0x....$'>)}]
              redirects: [
                (Redir
                  op: <Redir_Less '<'>
                  fd: 16777215
                  arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)}
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.truncated.table)}
                )
              ]
            )
            (C {(mv)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.truncated.table)} 
              {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)}
            )
          ]
          spids: [16777215 145]
        )
      ]
      spids: [16777215 199]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:precomposed)
          op: Equal
          rhs: {(${ VSub_Name charset) (.precomposed)}
          spids: [205]
        )
      ]
      spids: [205]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(${ VSub_Name charset)} {(Lit_Other '=')} {(EUC-TW)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:irreversible)
                  op: Equal
                  rhs: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.irreversible)}
                  spids: [231]
                )
              ]
              spids: [231]
            )
            (Subshell
              child: 
                (CommandList
                  children: [
                    (C {(grep)} {(SQ <'^0x8EA1'>)} 
                      {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)}
                    )
                    (C {(cat)} {(${ VSub_Name charset) (.irreversible)})
                  ]
                )
              redirects: [
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(${ VSub_Name irreversible)}
                )
              ]
              spids: [242 267]
            )
          ]
          spids: [16777215 228]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:irreversible)
              op: Equal
              rhs: {(${ VSub_Name charset) (.irreversible)}
              spids: [278]
            )
          ]
          spids: [278]
        )
      ]
      spids: [275 284]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix)}
        {(${ VSub_Name objpfx) (tst-table-from)}
        {(${ VSub_Name charset)}
      ]
      redirects: [
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.table)}
        )
      ]
    )
    (Pipeline
      children: [
        (C {(${ VSub_Name test_program_prefix)} {(${ VSub_Name objpfx) (tst-table-to)} 
          {(${ VSub_Name charset)}
        )
        (SimpleCommand
          words: [{(sort)}]
          redirects: [
            (Redir
              op: <Redir_Great '>'>
              fd: 16777215
              arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.inverse.table)}
            )
          ]
        )
      ]
      negated: F
    )
    (Pipeline
      children: [
        (C {(diff)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)} 
          {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.inverse.table)}
        )
        (C {(grep)} {(SQ <'^[<>]'>)})
        (SimpleCommand
          words: [{(sed)} {(-e)} {(SQ <'s,^. ,,'>)}]
          redirects: [
            (Redir
              op: <Redir_Great '>'>
              fd: 16777215
              arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.irreversible.table)}
            )
          ]
        )
      ]
      negated: F
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-f)} {(${ VSub_Name precomposed)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Pipeline
              children: [
                (C {(cat)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.table)} 
                  {(${ VSub_Name precomposed)}
                )
                (C {(sort)})
                (SimpleCommand
                  words: [{(uniq)} {(-u)}]
                  redirects: [
                    (Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.tmp.table)}
                    )
                  ]
                )
              ]
              negated: F
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(cmp)} {(-s)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)} 
                  {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.tmp.table)}
                )
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
          ]
          spids: [16777215 425]
        )
      ]
      else_action: [
        (AndOr
          ops: [Op_DPipe]
          children: [
            (C {(cmp)} {(-s)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)} 
              {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.table)}
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
      ]
      spids: [496 528]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-f)} {(${ VSub_Name irreversible)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Pipeline
              children: [
                (C {(cat)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)} 
                  {(${ VSub_Name irreversible)}
                )
                (C {(sort)})
                (SimpleCommand
                  words: [{(uniq)} {(-u)}]
                  redirects: [
                    (Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.tmp.table)}
                    )
                  ]
                )
              ]
              negated: F
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(cmp)} {(-s)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.tmp.table)} 
                  {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.inverse.table)}
                )
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
          ]
          spids: [16777215 545]
        )
      ]
      else_action: [
        (AndOr
          ops: [Op_DPipe]
          children: [
            (C {(cmp)} {(-s)} {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.charmap.table)} 
              {(${ VSub_Name objpfx) (tst-) (${ VSub_Name charset) (.inverse.table)}
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
      ]
      spids: [616 648]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)