(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:common_objpfx spids:[59])
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [59]
        )
      ]
      spids: [59]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:objpfx spids:[62])
          op: Equal
          rhs: {($ VSub_Number '$2')}
          spids: [62]
        )
      ]
      spids: [62]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_program_prefix spids:[65])
          op: Equal
          rhs: {($ VSub_Number '$3')}
          spids: [65]
        )
      ]
      spids: [65]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:status spids:[69])
          op: Equal
          rhs: {(0)}
          spids: [69]
        )
      ]
      spids: [69]
    )
    (command.Pipeline
      children: [
        (command.SimpleCommand
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: <Redir_DLess '<<'>
              fd: 16777215
              here_begin: {(EOF)}
              here_end_span_id: 314
              stdin_parts: [
                ('  # Single-byte and other ')
                (Right_DoubleQuote '"')
                (small)
                (Right_DoubleQuote '"')
                (' encodings come here.\n')
                ('  # Keep this list in the same order as gconv-modules.\n')
                ('  #\n')
                ('  # charset name    table name          comment\n')
                ('  ASCII             ANSI_X3.4-1968\n')
                ('  ISO646-GB         BS_4730\n')
                ('  ISO646-CA         CSA_Z243.4-1985-1\n')
                ('  ISO646-CA2        CSA_Z243.4-1985-2\n')
                ('  ISO646-DE         DIN_66003\n')
                ('  ISO646-DK         DS_2089\n')
                ('  ISO646-ES         ES\n')
                ('  ISO646-ES2        ES2\n')
                ('  ISO646-CN         GB_1988-80\n')
                ('  ISO646-IT         IT\n')
                ('  ISO646-JP         JIS_C6220-1969-RO\n')
                ('  ISO646-JP-OCR-B   JIS_C6229-1984-B\n')
                ('  ISO646-YU         JUS_I.B1.002\n')
                ('  ISO646-KR         KSC5636\n')
                ('  ISO646-HU         MSZ_7795.3\n')
                ('  ISO646-CU         NC_NC00-10\n')
                ('  ISO646-FR         NF_Z_62-010\n')
                ('  ISO646-FR1        NF_Z_62-010_1973\n')
                ('  ISO646-NO         NS_4551-1\n')
                ('  ISO646-NO2        NS_4551-2\n')
                ('  ISO646-PT         PT\n')
                ('  ISO646-PT2        PT2\n')
                ('  ISO646-SE         SEN_850200_B\n')
                ('  ISO646-SE2        SEN_850200_C\n')
                ('  ISO-8859-1\n')
                ('  ISO-8859-2\n')
                ('  ISO-8859-3\n')
                ('  ISO-8859-4\n')
                ('  ISO-8859-5\n')
                ('  ISO-8859-6\n')
                ('  ISO-8859-7\n')
                ('  ISO-8859-8\n')
                ('  ISO-8859-9\n')
                ('  ISO-8859-9E\n')
                ('  ISO-8859-10\n')
                ('  ISO-8859-11\n')
                ('  ISO-8859-13\n')
                ('  ISO-8859-14\n')
                ('  ISO-8859-15\n')
                ('  ISO-8859-16\n')
                ('  T.61-8BIT\n')
                ('  ISO_6937\n')
                ('  #ISO_6937-2        ISO-IR-90          Handling of combining marks is broken\n')
                ('  KOI-8\n')
                ('  KOI8-R\n')
                ('  LATIN-GREEK\n')
                ('  LATIN-GREEK-1\n')
                ('  HP-ROMAN8\n')
                ('  HP-ROMAN9\n')
                ('  HP-TURKISH8\n')
                ('  HP-THAI8\n')
                ('  HP-GREEK8\n')
                ('  EBCDIC-AT-DE\n')
                ('  EBCDIC-AT-DE-A\n')
                ('  EBCDIC-CA-FR\n')
                ('  EBCDIC-DK-NO\n')
                ('  EBCDIC-DK-NO-A\n')
                ('  EBCDIC-ES\n')
                ('  EBCDIC-ES-A\n')
                ('  EBCDIC-ES-S\n')
                ('  EBCDIC-FI-SE\n')
                ('  EBCDIC-FI-SE-A\n')
                ('  EBCDIC-FR\n')
                ('  EBCDIC-IS-FRISS\n')
                ('  EBCDIC-IT\n')
                ('  EBCDIC-PT\n')
                ('  EBCDIC-UK\n')
                ('  EBCDIC-US\n')
                ('  IBM037\n')
                ('  IBM038\n')
                ('  IBM256\n')
                ('  IBM273\n')
                ('  IBM274\n')
                ('  IBM275\n')
                ('  IBM277\n')
                ('  IBM278\n')
                ('  IBM280\n')
                ('  IBM281\n')
                ('  IBM284\n')
                ('  IBM285\n')
                ('  IBM290\n')
                ('  IBM297\n')
                ('  IBM420\n')
                ('  IBM423\n')
                ('  IBM424\n')
                ('  IBM437\n')
                ('  IBM500\n')
                ('  IBM850\n')
                ('  IBM851\n')
                ('  IBM852\n')
                ('  IBM855\n')
                ('  IBM856\n')
                ('  IBM857\n')
                ('  IBM860\n')
                ('  IBM861\n')
                ('  IBM862\n')
                ('  IBM863\n')
                ('  IBM864\n')
                ('  IBM865\n')
                ('  IBM866\n')
                ('  IBM866NAV\n')
                ('  IBM868\n')
                ('  IBM869\n')
                ('  IBM870\n')
                ('  IBM871\n')
                ('  IBM875\n')
                ('  IBM880\n')
                ('  IBM891\n')
                ('  IBM903\n')
                ('  IBM904\n')
                ('  IBM905\n')
                ('  IBM918\n')
                ('  IBM922\n')
                ('  IBM1004\n')
                ('  IBM1026\n')
                (
'  #IBM1046                              Differs from the AIX and JDK converters\n'
                )
                ('  IBM1047\n')
                ('  IBM1124\n')
                ('  IBM1129\n')
                ('  IBM1160\n')
                ('  IBM1161\n')
                ('  IBM1132\n')
                ('  IBM1133\n')
                ('  IBM1162\n')
                ('  IBM1163\n')
                ('  IBM1164\n')
                ('  CP1125\n')
                ('  CP1250\n')
                ('  CP1251\n')
                ('  CP1252\n')
                ('  CP1253\n')
                ('  CP1254\n')
                ('  CP1255\n')
                ('  CP1256\n')
                ('  CP1257\n')
                ('  CP1258\n')
                ('  IBM874\n')
                ('  CP737\n')
                ('  CP770\n')
                ('  CP771\n')
                ('  CP772\n')
                ('  CP773\n')
                ('  CP774\n')
                ('  CP775\n')
                ('  MACINTOSH\n')
                ('  IEC_P27-1\n')
                ('  ASMO_449\n')
                ('  ISO-IR-99         ANSI_X3.110-1983\n')
                ('  ISO-IR-139        CSN_369103\n')
                ('  CWI\n')
                ('  DEC-MCS\n')
                ('  ECMA-CYRILLIC\n')
                ('  ISO-IR-153        GOST_19768-74\n')
                ('  GREEK-CCITT\n')
                ('  GREEK7\n')
                ('  GREEK7-OLD\n')
                ('  INIS\n')
                ('  INIS-8\n')
                ('  INIS-CYRILLIC\n')
                ('  ISO_2033          ISO_2033-1983\n')
                ('  ISO_5427\n')
                ('  ISO_5427-EXT\n')
                ('  #ISO_5428                             Handling of combining marks is broken\n')
                ('  ISO_10367-BOX\n')
                ('  MAC-IS\n')
                ('  MAC-UK\n')
                ('  CP10007\n')
                ('  NATS-DANO\n')
                ('  NATS-SEFI\n')
                ('  WIN-SAMI-2        SAMI-WS2\n')
                ('  ISO-IR-197\n')
                ('  TIS-620\n')
                ('  KOI8-U\n')
                (
'  #ISIRI-3342                         This charset concept is completely broken\n'
                )
                ('  VISCII\n')
                ('  KOI8-T\n')
                ('  GEORGIAN-PS\n')
                ('  GEORGIAN-ACADEMY\n')
                ('  ISO-IR-209\n')
                ('  MAC-SAMI\n')
                ('  ARMSCII-8\n')
                ('  TCVN5712-1\n')
                ('  TSCII\n')
                ('  PT154\n')
                ('  RK1048\n')
                ('  MIK\n')
                ('  BRF\n')
                ('  MAC-CENTRALEUROPE\n')
                ('  KOI8-RU\n')
                ('  #\n')
                ('  # Multibyte encodings come here\n')
                ('  #\n')
                ('  SJIS              SHIFT_JIS\n')
                ('  CP932             WINDOWS-31J\n')
                ('  #IBM932                               This converter looks quite strange\n')
                ('  #IBM943                               This converter looks quite strange\n')
                ('  EUC-KR\n')
                ('  CP949\n')
                ('  JOHAB\n')
                ('  BIG5\n')
                ('  BIG5HKSCS         BIG5-HKSCS\n')
                ('  EUC-JP\n')
                ('  EUC-JP-MS\n')
                ('  EUC-CN            GB2312\n')
                ('  GBK\n')
                ('  EUC-TW\n')
                ('  GB18030\n')
                ('  EUC-JISX0213\n')
                ('  SHIFT_JISX0213\n')
                ('  #\n')
                ('  # Stateful encodings not testable this way\n')
                ('  #\n')
                ('  #IBM930\n')
                ('  #IBM933\n')
                ('  #IBM935\n')
                ('  #IBM937\n')
                ('  #IBM939\n')
                ('  #ISO-2022-JP\n')
                ('  #ISO-2022-JP-2\n')
                ('  #ISO-2022-JP-3\n')
                ('  #ISO-2022-KR\n')
                ('  #ISO-2022-CN\n')
                ('  #ISO-2022-CN-EXT\n')
                ('  #UTF-7\n')
                ('  #\n')
              ]
            )
          ]
        )
        (command.WhileUntil
          keyword: <KW_While while>
          cond: [
            (command.Sentence
              child: (C {(read)} {(charset)} {(charmap)})
              terminator: <Op_Semi ';'>
            )
          ]
          body: 
            (command.DoGroup
              children: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(test)} {(DQ ($ VSub_DollarName '$charset'))} {(Lit_Other '=')} 
                              {(GB18030)}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Sentence
                          child: 
                            (command.SimpleCommand
                              words: [{(echo)} {(DQ ('This might take a while'))}]
                              redirects: [(redir.Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      spids: [16777215 340]
                    )
                  ]
                  spids: [16777215 352]
                )
                (command.Case
                  to_match: {(${ VSub_Name charset)}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\#'>) 
                          (Lit_Other '*')
                        }
                      ]
                      action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                      spids: [363 365 368 16777215]
                    )
                  ]
                  spids: [355 361 370]
                )
                (command.SimpleCommand
                  words: [{(printf)} {(Lit_Other '%') (s)} {(DQ ('Testing ') (${ VSub_Name charset))}]
                  redirects: [(redir.Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.SimpleCommand
                              words: [
                                {(./tst-table.sh)}
                                {(${ VSub_Name common_objpfx)}
                                {(${ VSub_Name objpfx)}
                                {(DQ (${ VSub_Name test_program_prefix))}
                                {(${ VSub_Name charset)}
                                {(${ VSub_Name charmap)}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Redir_Less '<'>
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.SimpleCommand
                          words: [{(echo)}]
                          redirects: [(redir.Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})]
                        )
                      ]
                      spids: [16777215 422]
                    )
                  ]
                  else_action: [
                    (C {(echo)} 
                      {
                        (DQ ('failed: ./tst-table.sh ') (${ VSub_Name common_objpfx) (' ') 
                          (${ VSub_Name objpfx) (' ') (${ VSub_Name charset) (' ') (${ VSub_Name charmap)
                        )
                      }
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ (' *** FAILED ***'))}]
                      redirects: [(redir.Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})]
                    )
                    (command.ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {(1)}
                    )
                  ]
                  spids: [431 471]
                )
              ]
              spids: [324 473]
            )
        )
      ]
      negated: F
    )
    (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
  ]
)