(CommandList
  children: [
    (Sentence
      child: 
        (C {(.)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name srcdir>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
                spids: [47 51]
              ) (/tests/init.sh)
            )
          }
        )
      terminator: <Op_Semi ';'>
    )
    (C {(path_prepend_)} {(./src)})
    (C {(print_ver_)} {(tr)})
    (SimpleCommand
      words: [{(echo)} {(SQ <01234567899999999999999999>)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[74])]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (C {(echo)} {(SQ <abcdefghijklmnopqrstuvwxyz>)})
            (SimpleCommand
              words: [{(tr)} {(SQ <'[:lower:]'>)} {(SQ <0-9>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[96])]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[102])]
          spids: [102]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[113])]
          spids: [113]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (C {(echo)} {(SQ <abcdefghijklmnopqrstuvwxyz>)})
            (SimpleCommand
              words: [{(tr)} {(SQ <'[:lower:][:lower:]'>)} {(SQ <'[:upper:]0-9'>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[134])]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[140])]
          spids: [140]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[151])]
          spids: [151]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'A-Z[:lower:]'>)} {(SQ <'a-y[:upper:]'>)}]
          redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[168])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[174])]
          spids: [174]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'[:upper:][:lower:]'>)} {(SQ <'a-y[:upper:]'>)}]
          redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[187])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[193])]
          spids: [193]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'A-Y[:lower:]'>)} {(SQ <'a-z[:upper:]'>)}]
          redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[206])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[212])]
          spids: [212]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'A-Z[:lower:]'>)} {(SQ <'[:lower:][:upper:]'>)}]
          redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[225])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[231])]
          spids: [231]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'A-Z[:lower:]'>)} {(SQ <'[:lower:]A-Z'>)}]
          redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[244])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[250])]
          spids: [250]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'[:upper:][:lower:]'>)} {(SQ <'a-z[:upper:]'>)}]
          redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[263])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[269])]
          spids: [269]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'[:upper:][:lower:]'>)} {(SQ <'[:upper:]a-z'>)}]
          redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[282])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[288])]
          spids: [288]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(tr)} {(SQ <'[:upper:] '>)} {(SQ <'[:lower:]'>)}]
          redirects: [
            (Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[314])
            (Redir op_id:Redir_Great fd:2 arg_word:{(out)} spids:[318])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[323])]
          spids: [323]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (SQ <'tr: when translating with string1 longer than string2,\n'> 
            <'the latter string must not end with a character class'>
          )
        }
      ]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[333])]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[345])]
          spids: [345]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (C {(echo)} {(SQ <'#$%123abcABC'>)})
            (SimpleCommand
              words: [{(tr)} {(SQ <'[:lower:]'>)} {(SQ <'[.*]'>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[370])]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[376])]
          spids: [376]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <'#$%123...ABC'>)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[385])]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[397])]
          spids: [397]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (C {(echo)} {(SQ <'#$%123abcABC'>)})
            (SimpleCommand
              words: [{(tr)} {(SQ <'[:upper:]'>)} {(SQ <'[.*]'>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[418])]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[424])]
          spids: [424]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <'#$%123abc...'>)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[433])]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[445])]
          spids: [445]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (C {(echo)} {(SQ <abc.>)})
            (SimpleCommand
              words: [{(tr)} {(SQ <'[:lower:].'>)} {(SQ <'[:upper:]x'>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[473])]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[479])]
          spids: [479]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <ABCx>)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[488])]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[500])]
          spids: [500]
        )
      ]
    )
    (C {(export)} {(Lit_VarLike 'LC_ALL=') (en_US.ISO-8859-1)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(locale)} {(charmap)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [526]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [521 528]
                      )
                    )
                  } {(Lit_Other '=')} {(ISO-8859-1)}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [{(tr)} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}]
                  redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/dev/null)} spids:[561])]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[567])]
                  spids: [567]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (SimpleCommand
                  words: [{(tr)} {(SQ <'[:upper:] '>)} {(SQ <'[:lower:]'>)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [582]
                    )
                    (Redir op_id:Redir_Great fd:2 arg_word:{(out)} spids:[586])
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[591])]
                  spids: [591]
                )
              ]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (SQ <'tr: when translating with string1 longer than string2,\n'> 
                    <'the latter string must not end with a character class'>
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[602])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(compare)} {(exp)} {(out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[615])]
                  spids: [615]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(SQ <abc.xyz>)})
                    (SimpleCommand
                      words: [{(tr)} {(SQ <'ab[:lower:]'>)} {(SQ <'0-1[:upper:]'>)}]
                      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[647])]
                    )
                  ]
                  negated: F
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[653])]
                  spids: [653]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <ABC.XYZ>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[663])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(compare)} {(exp)} {(out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[676])]
                  spids: [676]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(SQ <'ABC- XYZ'>)})
                    (SimpleCommand
                      words: [{(tr)} {(SQ <'[:upper:]- '>)} {(SQ <'[:lower:]_'>)}]
                      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[704])]
                    )
                  ]
                  negated: F
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[710])]
                  spids: [710]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <abc__xyz>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[720])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(compare)} {(exp)} {(out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[733])]
                  spids: [733]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(SQ <ABCDEFGHIJKLMNOPQRSTUVWXYZ>)})
                    (SimpleCommand
                      words: [{(tr)} {(SQ <'[:upper:]A-B'>)} {(SQ <'[:lower:]0'>)}]
                      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[765])]
                    )
                  ]
                  negated: F
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[770])]
                  spids: [770]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <00cdefghijklmnopqrstuvwxyz>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[780])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(compare)} {(exp)} {(out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[793])]
                  spids: [793]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(SQ <a>)})
                    (SimpleCommand
                      words: [{(tr)} {(-t)} {(SQ <'[:lower:]a'>)} {(SQ <'[:upper:]0'>)}]
                      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[827])]
                    )
                  ]
                  negated: F
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[832])]
                  spids: [832]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <0>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[842])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(compare)} {(exp)} {(out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[855])]
                  spids: [855]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(SQ <a>)})
                    (SimpleCommand
                      words: [{(tr)} {(-t)} {(SQ <'[:lower:][:lower:]a'>)} {(SQ <'[:lower:][:upper:]0'>)}]
                      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[889])]
                    )
                  ]
                  negated: F
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[894])]
                  spids: [894]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(SQ <0>)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[904])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(compare)} {(exp)} {(out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[917])]
                  spids: [917]
                )
              ]
            )
          ]
          spids: [16777215 536]
        )
      ]
      spids: [16777215 920]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)