(CommandList
  children: [
    (C {(set)} {(-C)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: {(DQ ('/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin'))}
          spids: [99]
        )
      ]
      spids: [99]
    )
    (C {(export)} {(PATH)})
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('Usage:'))})
            (C {(echo)} {(-n)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(basename)} {(${ VSub_Number 0)})])
                    left_token: <Left_CommandSub '$('>
                    spids: [128 134]
                  ) (' [-rNNNNNN]')
                )
              }
            )
            (C {(echo)} {(DQ (' [-l /path/for/output] /path/to/branch'))})
            (C {(echo)} {(DQ (' -r: The oldest commit to include in the search'))})
            (C {(echo)} {(DQ )})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [113]
        )
      spids: [109 112]
    )
    (FuncDef
      name: main
      body: 
        (BraceGroup
          children: [
            (While
              cond: [(Sentence child:(C {(getopts)} {(DQ ('l:r:'))} {(arg)}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(${ VSub_Name arg)}
                      arms: [
                        (case_arm
                          pat_list: [{(l)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:where)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name OPTARG>
                                          suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('-r*')})
                                          spids: [215 219]
                                        )
                                      )
                                    }
                                  spids: [213]
                                )
                              ]
                              spids: [213]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name where))} {(Lit_Other ']')})
                                (C {(usage)})
                              ]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name where))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {(DQ ('Log file already exists:'))})
                                    (C {(echo)} {(DQ ('  (') (${ VSub_Name where) (')'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(2)}
                                    )
                                  ]
                                  spids: [16777215 255]
                                )
                              ]
                              spids: [16777215 281]
                            )
                          ]
                          spids: [197 198 284 16777215]
                        )
                        (case_arm
                          pat_list: [{(r)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rev)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name OPTARG>
                                          suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{(-r)})
                                          spids: [293 297]
                                        )
                                      )
                                    }
                                  spids: [291]
                                )
                              ]
                              spids: [291]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:c)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(-n)} {(${ VSub_Name rev)})
                                                  (C {(tr)} {(-d)} {(SQ <0-9>)})
                                                  (C {(wc)} {(-c)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [302 326]
                                      )
                                    }
                                  spids: [301]
                                )
                              ]
                              spids: [301]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(${ VSub_Name c)} {(-ne)} {(0)} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {(DQ ('Revision number must be numeric.'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(2)}
                                    )
                                  ]
                                  spids: [16777215 344]
                                )
                              ]
                              spids: [16777215 359]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rev)
                                  op: Equal
                                  rhs: {(DQ (-r) (${ VSub_Name rev) (':rHEAD'))}
                                  spids: [374]
                                )
                              ]
                              spids: [374]
                            )
                          ]
                          spids: [287 288 384 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(usage)})]
                          spids: [387 388 394 16777215]
                        )
                      ]
                      spids: [188 194 397]
                    )
                  ]
                  spids: [185 400]
                )
            )
            (C {(shift)} 
              {
                (ArithSubPart
                  anode: 
                    (ArithBinary
                      op_id: Arith_Minus
                      left: (ArithWord w:{(${ VSub_Name OPTIND)})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [405 416]
                )
              }
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Pound '$#'))} {(-ne)} {(1)} {(Lit_Other ']')})
                (C {(usage)})
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name where))} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:where)
                      op: Equal
                      rhs: {(/dev/stdout)}
                      spids: [468]
                    )
                  ]
                  spids: [468]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:svn) op:Equal rhs:{(EmptyPart)} spids:[473])]
              spids: [473]
            )
            (ForEach
              iter_name: s
              iter_words: [{(/usr/bin)} {(/usr/local/bin)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-x)} {(${ VSub_Name s) (/svn)} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:svn)
                                  op: Equal
                                  rhs: {(${ VSub_Name s) (/svn)}
                                  spids: [511]
                                )
                              ]
                              spids: [511]
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [16777215 508]
                        )
                      ]
                      spids: [16777215 521]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-x)} {(${ VSub_Name s) (/svnlite)} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:svn)
                                  op: Equal
                                  rhs: {(${ VSub_Name s) (/svnlite)}
                                  spids: [541]
                                )
                              ]
                              spids: [541]
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [16777215 538]
                        )
                      ]
                      spids: [16777215 551]
                    )
                  ]
                  spids: [491 554]
                )
              spids: [485 489]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name svn))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('svn(1) binary not found.'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(2)})
                  ]
                  spids: [16777215 576]
                )
              ]
              spids: [16777215 591]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(1)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Cannot specify more than one working path.'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(2)})
                  ]
                  spids: [16777215 619]
                )
              ]
              spids: [16777215 634]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Number 1))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Specified path (') (${ VSub_Number 1) (') is not a directory.'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(2)})
                  ]
                  spids: [16777215 658]
                )
              ]
              spids: [16777215 677]
            )
            (SimpleCommand
              words: [{(${ VSub_Name svn)} {(info)} {(${ VSub_Number 1)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [694]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[697])
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_QMark '$?'))} {(-ne)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {(DQ ('Cannot determine svn repository information for ') (${ VSub_Number 1))}
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(2)})
                  ]
                  spids: [16777215 716]
                )
              ]
              spids: [16777215 734]
            )
            (SimpleCommand
              words: [
                {(${ VSub_Name svn)}
                {(log)}
                {(${ VSub_Name rev)}
                {(--search)}
                {(SQ <'Relnotes:*[A-Za-z0-9]*'>)}
                {(${ VSub_Number 1)}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(${ VSub_Name where)}
                  spids: [770]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [170]
        )
      spids: [166 169]
    )
    (C {(main)} {(DQ (${ VSub_At '@'))})
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
  ]
)