(CommandList
  children: [
    (Sentence
      child: 
        (C {(.)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name srcdir>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
                spids: [50 54]
              ) (/tests/init.sh)
            )
          }
        )
      terminator: <Op_Semi ';'>
    )
    (C {(path_prepend_)} {(./src)})
    (C {(print_ver_)} {(stty)})
    (C {(require_controlling_input_terminal_)})
    (C {(trap)} {(SQ )} {(TTOU)})
    (C {(stty_reversible_init_)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:saved_state) op:Equal rhs:{(.saved-state)} spids:[87])]
      spids: [87]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(stty)} {(--save)}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {($ VSub_Name '$saved_state')}
              spids: [94]
            )
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[100])]
          spids: [100]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(stty)} 
          {
            (CommandSubPart
              command_list: (CommandList children:[(C {(cat)} {($ VSub_Name '$saved_state')})])
              left_token: <Left_CommandSub '$('>
              spids: [105 109]
            )
          }
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[113])]
          spids: [113]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(stty)} {(erase)} {(-)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[128])]
          spids: [128]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(stty)} {(-F)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[139])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[144])]
          spids: [144]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(stty)} {(-raw)} {(-F)} {(no/such/file)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[155])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[160])]
          spids: [160]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(stty)} {(-raw)} {(-a)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[169])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[174])]
          spids: [174]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_del)
          op: Equal
          rhs: {(SQ <'/^speed/d;/^rows/d;/^columns/d;/ = /d'>)}
          spids: [187]
        )
      ]
      spids: [187]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:options)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(stty)} {(-a)})
                          (C {(tr)} {(-s)} {(SQ <';'>)} {(SQ <'\\n'>)})
                          (C {(sed)} {(DQ ('s/^ //;') ($ VSub_Name '$sed_del') (';s/-//g'))})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [193 221]
              )
            }
          spids: [192]
        )
      ]
      spids: [192]
    )
    (ForEach
      iter_name: opt
      iter_words: [{($ VSub_Name '$options')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$opt')}
              arms: [
                (case_arm
                  pat_list: [{(parenb)} {(parodd)} {(cmspar)}]
                  action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [270 275 278 16777215]
                )
                (case_arm
                  pat_list: [{(cstopb)} {(crtscts)} {(cdtrdsr)} {(icanon)}]
                  action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                  spids: [281 288 291 16777215]
                )
              ]
              spids: [263 267 294]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(stty)} {($ VSub_Name '$opt')})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[304])]
                  spids: [304]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {($ VSub_Name '$opt')} {(Lit_Other '=')} {(cread)})
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(stty_reversible_query_)} {(DQ ($ VSub_Name '$opt'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(stty)} {(-) ($ VSub_Name '$opt')})
                        (BraceGroup
                          children: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:fail)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [348]
                                    )
                                  ]
                                  spids: [348]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(echo)} {(-) ($ VSub_Name '$opt')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [346]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 336]
                )
              ]
              spids: [16777215 361]
            )
          ]
          spids: [236 363]
        )
      spids: [232 234]
    )
    (C {(stty)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(cat)} {($ VSub_Name '$saved_state')})])
          left_token: <Left_CommandSub '$('>
          spids: [368 372]
        )
      }
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)