(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:memusageso spids:[49])
          op: Equal
          rhs: {(SQ <'@SLIBDIR@/libmemusage.so'>)}
          spids: [49]
        )
      ]
      spids: [49]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:memusagestat spids:[54])
          op: Equal
          rhs: {(SQ <'@BINDIR@/memusagestat'>)}
          spids: [54]
        )
      ]
      spids: [54]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:TEXTDOMAIN spids:[59])
          op: Equal
          rhs: {(libc)}
          spids: [59]
        )
      ]
      spids: [59]
    )
    (command.FuncDef
      name: do_usage
      body: 
        (command.BraceGroup
          children: [
            (command.SimpleCommand
              words: [
                {(printf)}
                {
                  (DQ ('Try ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) 
                    ("%s --help' or ") (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ("%s --usage' for more information.") 
                    (Lit_Other '\\') (n)
                  )
                }
                {(memusage)}
                {(memusage)}
              ]
              redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [70]
        )
      spids: [66 69]
    )
    (command.FuncDef
      name: do_missing_arg
      body: 
        (command.BraceGroup
          children: [
            (command.SimpleCommand
              words: [
                {(printf)}
                {(DQ ("%s: option '%s' requires an argument") (Lit_Other '\\') (n))}
                {(memusage)}
                {(DQ ($ VSub_Number '$1'))}
              ]
              redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (C {(do_usage)})
          ]
          spids: [107]
        )
      spids: [103 106]
    )
    (command.FuncDef
      name: do_help
      body: 
        (command.BraceGroup
          children: [
            (C {(echo)} 
              {
                (DQ ('Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...\n') 
                  ('Profile memory usage of PROGRAM.\n') ('\n') ('   -n,--progname=NAME     Name of the program file to profile\n') 
                  ('   -p,--png=FILE          Generate PNG graphic and store it in FILE\n') ('   -d,--data=FILE         Generate binary data file and store it in FILE\n') 
                  ("   -u,--unbuffered        Don't buffer output\n") ('   -b,--buffer=SIZE       Collect SIZE entries before writing them out\n') 
                  (
"      --no-timer          Don't collect additional information through timer\n"
                  ) ('   -m,--mmap              Also trace mmap & friends\n') ('\n') 
                  ('   -?,--help              Print this help and exit\n') ('      --usage             Give a short usage message\n') 
                  ('   -V,--version           Print version information and exit\n') ('\n') (' The following options only apply when generating graphical output:\n') 
                  ('   -t,--time-based        Make graph linear in time\n') ('   -T,--total             Also draw graph of total memory use\n') 
                  ('      --title=STRING      Use STRING as title of the graph\n') ('   -x,--x-size=SIZE       Make graphic SIZE pixels wide\n') 
                  ('   -y,--y-size=SIZE       Make graphic SIZE pixels high\n') ('\n') ('Mandatory arguments to long options are also mandatory for any corresponding\n') 
                  ('short options.\n') ('\n')
                )
              }
            )
            (C {(printf)} 
              {
                (DQ ('For bug reporting instructions, please see:') 
                  (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('n%s.') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n)
                )
              } {(DQ ('@REPORT_BUGS_TO@'))}
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [140]
        )
      spids: [136 139]
    )
    (command.FuncDef
      name: do_version
      body: 
        (command.BraceGroup
          children: [
            (C {(echo)} {(SQ <'memusage @PKGVERSION@@VERSION@'>)})
            (C {(printf)} 
              {
                (DQ ('Copyright (C) %s Free Software Foundation, Inc.\n') 
                  ('This is free software; see the source for copying conditions.  There is NO\n') ('warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n')
                )
              } {(DQ (2016))}
            )
            (C {(printf)} {(DQ ('Written by %s.\n'))} {(DQ ('Ulrich Drepper'))})
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [202]
        )
      spids: [198 201]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:buffer spids:[246])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [246]
        )
      ]
      spids: [246]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:data spids:[248])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [248]
        )
      ]
      spids: [248]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[250])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [250]
        )
      ]
      spids: [250]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:notimer spids:[252])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [252]
        )
      ]
      spids: [252]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:png spids:[254])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [254]
        )
      ]
      spids: [254]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:progname spids:[256])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [256]
        )
      ]
      spids: [256]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:tracemmap spids:[258])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [258]
        )
      ]
      spids: [258]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [
        (command.Sentence
          child: (C {(test)} {($ VSub_Pound '$#')} {(-gt)} {(0)})
          terminator: <Op_Semi ';'>
        )
      ]
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [
                    {(-V)}
                    {(--v)}
                    {(--ve)}
                    {(--ver)}
                    {(--vers)}
                    {(--versi)}
                    {(--versio)}
                    {(--version)}
                  ]
                  action: [(C {(do_version)})]
                  spids: [287 316 322 16777215]
                )
                (case_arm
                  pat_list: [
                    {(-) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}
                    {(--h)}
                    {(--he)}
                    {(--hel)}
                    {(--help)}
                  ]
                  action: [(C {(do_help)})]
                  spids: [325 343 349 16777215]
                )
                (case_arm
                  pat_list: [{(--us)} {(--usa)} {(--usag)} {(--usage)}]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ 
                          (
'Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n'
                          ) ('\t    [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n') 
                          ('\t    [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n') ('\t    PROGRAM [PROGRAMOPTION]...')
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {(0)}
                    )
                  ]
                  spids: [352 365 383 16777215]
                )
                (case_arm
                  pat_list: [
                    {(-n)}
                    {(--pr)}
                    {(--pro)}
                    {(--prog)}
                    {(--progn)}
                    {(--progna)}
                    {(--prognam)}
                    {(--progname)}
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})]
                          spids: [16777215 429]
                        )
                      ]
                      spids: [16777215 437]
                    )
                    (C {(shift)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:progname spids:[443])
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [443]
                        )
                      ]
                      spids: [443]
                    )
                  ]
                  spids: [386 415 449 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--pr) (Lit_Other '=') (Lit_Other '*')}
                    {(--pro) (Lit_Other '=') (Lit_Other '*')}
                    {(--prog) (Lit_Other '=') (Lit_Other '*')}
                    {(--progn) (Lit_Other '=') (Lit_Other '*')}
                    {(--progna) (Lit_Other '=') (Lit_Other '*')}
                    {(--prognam) (Lit_Other '=') (Lit_Other '*')}
                    {(--progname) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:progname spids:[494])
                          op: Equal
                          rhs: 
                            {
                              (word_part.BracedVarSub
                                token: <VSub_Number 1>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*=')})
                                spids: [495 499]
                              )
                            }
                          spids: [494]
                        )
                      ]
                      spids: [494]
                    )
                  ]
                  spids: [452 491 502 16777215]
                )
                (case_arm
                  pat_list: [{(-p)} {(--pn)} {(--png)}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})]
                          spids: [16777215 528]
                        )
                      ]
                      spids: [16777215 536]
                    )
                    (C {(shift)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:png spids:[542])
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [542]
                        )
                      ]
                      spids: [542]
                    )
                  ]
                  spids: [505 514 548 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--pn) (Lit_Other '=') (Lit_Other '*')}
                    {(--png) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:png spids:[563])
                          op: Equal
                          rhs: 
                            {
                              (word_part.BracedVarSub
                                token: <VSub_Number 1>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*=')})
                                spids: [564 568]
                              )
                            }
                          spids: [563]
                        )
                      ]
                      spids: [563]
                    )
                  ]
                  spids: [551 560 571 16777215]
                )
                (case_arm
                  pat_list: [{(-d)} {(--d)} {(--da)} {(--dat)} {(--data)}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})]
                          spids: [16777215 605]
                        )
                      ]
                      spids: [16777215 613]
                    )
                    (C {(shift)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:data spids:[619])
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [619]
                        )
                      ]
                      spids: [619]
                    )
                  ]
                  spids: [574 591 625 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--d) (Lit_Other '=') (Lit_Other '*')}
                    {(--da) (Lit_Other '=') (Lit_Other '*')}
                    {(--dat) (Lit_Other '=') (Lit_Other '*')}
                    {(--data) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:data spids:[652])
                          op: Equal
                          rhs: 
                            {
                              (word_part.BracedVarSub
                                token: <VSub_Number 1>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*=')})
                                spids: [653 657]
                              )
                            }
                          spids: [652]
                        )
                      ]
                      spids: [652]
                    )
                  ]
                  spids: [628 649 660 16777215]
                )
                (case_arm
                  pat_list: [
                    {(-u)}
                    {(--un)}
                    {(--unb)}
                    {(--unbu)}
                    {(--unbuf)}
                    {(--unbuff)}
                    {(--unbuffe)}
                    {(--unbuffer)}
                    {(--unbuffere)}
                    {(--unbuffered)}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:buffer spids:[703])
                          op: Equal
                          rhs: {(1)}
                          spids: [703]
                        )
                      ]
                      spids: [703]
                    )
                  ]
                  spids: [663 700 707 16777215]
                )
                (case_arm
                  pat_list: [{(-b)} {(--b)} {(--bu)} {(--buf)} {(--buff)} {(--buffe)} {(--buffer)}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})]
                          spids: [16777215 749]
                        )
                      ]
                      spids: [16777215 757]
                    )
                    (C {(shift)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:buffer spids:[763])
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [763]
                        )
                      ]
                      spids: [763]
                    )
                  ]
                  spids: [710 735 769 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--b) (Lit_Other '=') (Lit_Other '*')}
                    {(--bu) (Lit_Other '=') (Lit_Other '*')}
                    {(--buf) (Lit_Other '=') (Lit_Other '*')}
                    {(--buff) (Lit_Other '=') (Lit_Other '*')}
                    {(--buffe) (Lit_Other '=') (Lit_Other '*')}
                    {(--buffer) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:buffer spids:[808])
                          op: Equal
                          rhs: 
                            {
                              (word_part.BracedVarSub
                                token: <VSub_Number 1>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*=')})
                                spids: [809 813]
                              )
                            }
                          spids: [808]
                        )
                      ]
                      spids: [808]
                    )
                  ]
                  spids: [772 805 816 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--n)}
                    {(--no)}
                    {(--no-)}
                    {(--no-t)}
                    {(--no-ti)}
                    {(--no-tim)}
                    {(--no-time)}
                    {(--no-timer)}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:notimer spids:[851])
                          op: Equal
                          rhs: {(yes)}
                          spids: [851]
                        )
                      ]
                      spids: [851]
                    )
                  ]
                  spids: [819 848 855 16777215]
                )
                (case_arm
                  pat_list: [{(-m)} {(--m)} {(--mm)} {(--mma)} {(--mmap)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:tracemmap spids:[878])
                          op: Equal
                          rhs: {(yes)}
                          spids: [878]
                        )
                      ]
                      spids: [878]
                    )
                  ]
                  spids: [858 875 882 16777215]
                )
                (case_arm
                  pat_list: [
                    {(-t)}
                    {(--tim)}
                    {(--time)}
                    {(--time-)}
                    {(--time-b)}
                    {(--time-ba)}
                    {(--time-bas)}
                    {(--time-base)}
                    {(--time-based)}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[921])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$memusagestat_args') (' -t'))}
                          spids: [921]
                        )
                      ]
                      spids: [921]
                    )
                  ]
                  spids: [885 918 928 16777215]
                )
                (case_arm
                  pat_list: [{(-T)} {(--to)} {(--tot)} {(--tota)} {(--total)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[951])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$memusagestat_args') (' -T'))}
                          spids: [951]
                        )
                      ]
                      spids: [951]
                    )
                  ]
                  spids: [931 948 958 16777215]
                )
                (case_arm
                  pat_list: [{(--tit)} {(--titl)} {(--title)}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})]
                          spids: [16777215 984]
                        )
                      ]
                      spids: [16777215 992]
                    )
                    (C {(shift)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[998])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$memusagestat_args') (' -s ') 
                                ($ VSub_Number '$1')
                              )
                            }
                          spids: [998]
                        )
                      ]
                      spids: [998]
                    )
                  ]
                  spids: [961 970 1006 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--tit) (Lit_Other '=') (Lit_Other '*')}
                    {(--titl) (Lit_Other '=') (Lit_Other '*')}
                    {(--title) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[1027])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$memusagestat_args') (' -s ') 
                                (word_part.BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VOp1_DPound
                                      arg_word: {('*=')}
                                    )
                                  spids: [1031 1035]
                                )
                              )
                            }
                          spids: [1027]
                        )
                      ]
                      spids: [1027]
                    )
                  ]
                  spids: [1009 1024 1039 16777215]
                )
                (case_arm
                  pat_list: [{(-x)} {(--x)} {(--x-)} {(--x-s)} {(--x-si)} {(--x-siz)} {(--x-size)}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})]
                          spids: [16777215 1081]
                        )
                      ]
                      spids: [16777215 1089]
                    )
                    (C {(shift)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[1095])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$memusagestat_args') (' -x ') 
                                ($ VSub_Number '$1')
                              )
                            }
                          spids: [1095]
                        )
                      ]
                      spids: [1095]
                    )
                  ]
                  spids: [1042 1067 1103 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--x) (Lit_Other '=') (Lit_Other '*')}
                    {(--x-) (Lit_Other '=') (Lit_Other '*')}
                    {(--x-s) (Lit_Other '=') (Lit_Other '*')}
                    {(--x-si) (Lit_Other '=') (Lit_Other '*')}
                    {(--x-siz) (Lit_Other '=') (Lit_Other '*')}
                    {(--x-size) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[1142])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$memusagestat_args') (' -x ') 
                                (word_part.BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VOp1_DPound
                                      arg_word: {('*=')}
                                    )
                                  spids: [1146 1150]
                                )
                              )
                            }
                          spids: [1142]
                        )
                      ]
                      spids: [1142]
                    )
                  ]
                  spids: [1106 1139 1154 16777215]
                )
                (case_arm
                  pat_list: [{(-y)} {(--y)} {(--y-)} {(--y-s)} {(--y-si)} {(--y-siz)} {(--y-size)}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})]
                          spids: [16777215 1196]
                        )
                      ]
                      spids: [16777215 1204]
                    )
                    (C {(shift)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[1210])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$memusagestat_args') (' -y ') 
                                ($ VSub_Number '$1')
                              )
                            }
                          spids: [1210]
                        )
                      ]
                      spids: [1210]
                    )
                  ]
                  spids: [1157 1182 1218 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--y) (Lit_Other '=') (Lit_Other '*')}
                    {(--y-) (Lit_Other '=') (Lit_Other '*')}
                    {(--y-s) (Lit_Other '=') (Lit_Other '*')}
                    {(--y-si) (Lit_Other '=') (Lit_Other '*')}
                    {(--y-siz) (Lit_Other '=') (Lit_Other '*')}
                    {(--y-size) (Lit_Other '=') (Lit_Other '*')}
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:memusagestat_args spids:[1257])
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_DollarName '$memusagestat_args') (' -y ') 
                                (word_part.BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.StringUnary
                                      op_id: VOp1_DPound
                                      arg_word: {('*=')}
                                    )
                                  spids: [1261 1265]
                                )
                              )
                            }
                          spids: [1257]
                        )
                      ]
                      spids: [1257]
                    )
                  ]
                  spids: [1221 1254 1269 16777215]
                )
                (case_arm
                  pat_list: [
                    {(--p)}
                    {(--p) (Lit_Other '=') (Lit_Other '*')}
                    {(--t)}
                    {(--t) (Lit_Other '=') (Lit_Other '*')}
                    {(--ti)}
                    {(--ti) (Lit_Other '=') (Lit_Other '*')}
                    {(--u)}
                  ]
                  action: [
                    (command.SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ('memusage: option ') 
                            (word_part.EscapedLiteralPart
                              token: <Lit_EscapedChar '\\`'>
                            ) 
                            (word_part.BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*=')})
                              spids: [1314 1318]
                            ) ("' is ambiguous")
                          )
                        }
                      ]
                      redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (C {(do_usage)})
                  ]
                  spids: [1272 1303 1326 16777215]
                )
                (case_arm
                  pat_list: [{(--)}]
                  action: [(C {(shift)}) (command.ControlFlow token:<ControlFlow_Break break>)]
                  spids: [1329 1330 1343 16777215]
                )
                (case_arm
                  pat_list: [{(--) (Lit_Other '*')}]
                  action: [
                    (command.SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ('memusage: unrecognized option ') 
                            (word_part.EscapedLiteralPart
                              token: <Lit_EscapedChar '\\`'>
                            ) ($ VSub_Number '$1') ("'")
                          )
                        }
                      ]
                      redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (C {(do_usage)})
                  ]
                  spids: [1346 1348 1367 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(command.ControlFlow token:<ControlFlow_Break break>)]
                  spids: [1370 1371 1381 16777215]
                )
              ]
              spids: [278 284 1384]
            )
            (C {(shift)})
          ]
          spids: [275 1389]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(echo)} {(DQ ('No program name given'))}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (C {(do_usage)})
          ]
          spids: [16777215 1406]
        )
      ]
      spids: [16777215 1421]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:add_env spids:[1427])
          op: Equal
          rhs: {(DQ ('LD_PRELOAD=') ($ VSub_DollarName '$memusageso'))}
          spids: [1427]
        )
      ]
      spids: [1427]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:datafile spids:[1437])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [1437]
        )
      ]
      spids: [1437]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$data'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:datafile spids:[1453])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$data'))}
                  spids: [1453]
                )
              ]
              spids: [1453]
            )
          ]
          spids: [16777215 1450]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$png'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:datafile spids:[1472])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(mktemp)} {(-t)} {(memusage.XXXXXX)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1473 1479]
                          )
                        }
                      spids: [1472]
                    )
                  ]
                  spids: [1472]
                )
                (command.ControlFlow token:<ControlFlow_Exit exit>)
              ]
            )
            (C {(trap)} {(SQ <'rm -f "$datafile"; exit 1'>)} {(HUP)} {(INT)} {(QUIT)} {(TERM)} {(PIPE)})
          ]
          spids: [1458 1469]
        )
      ]
      spids: [16777215 1502]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$datafile'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:add_env spids:[1518])
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_DollarName '$add_env') (' MEMUSAGE_OUTPUT=') 
                        ($ VSub_DollarName '$datafile')
                      )
                    }
                  spids: [1518]
                )
              ]
              spids: [1518]
            )
          ]
          spids: [16777215 1515]
        )
      ]
      spids: [16777215 1525]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$progname'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:add_env spids:[1545])
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_DollarName '$add_env') (' MEMUSAGE_PROG_NAME=') 
                        ($ VSub_DollarName '$progname')
                      )
                    }
                  spids: [1545]
                )
              ]
              spids: [1545]
            )
          ]
          spids: [16777215 1542]
        )
      ]
      spids: [16777215 1552]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$buffer'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:add_env spids:[1572])
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_DollarName '$add_env') (' MEMUSAGE_BUFFER_SIZE=') 
                        ($ VSub_DollarName '$buffer')
                      )
                    }
                  spids: [1572]
                )
              ]
              spids: [1572]
            )
          ]
          spids: [16777215 1569]
        )
      ]
      spids: [16777215 1579]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$notimer'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:add_env spids:[1599])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$add_env') (' MEMUSAGE_NO_TIMER=yes'))}
                  spids: [1599]
                )
              ]
              spids: [1599]
            )
          ]
          spids: [16777215 1596]
        )
      ]
      spids: [16777215 1605]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$tracemmap'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:add_env spids:[1625])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$add_env') (' MEMUSAGE_TRACE_MMAP=yes'))}
                  spids: [1625]
                )
              ]
              spids: [1625]
            )
          ]
          spids: [16777215 1622]
        )
      ]
      spids: [16777215 1631]
    )
    (C {(eval)} {($ VSub_DollarName '$add_env')} {(SQ <'"$@"'>)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:result spids:[1645])
          op: Equal
          rhs: {($ VSub_QMark '$?')}
          spids: [1645]
        )
      ]
      spids: [1645]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$png'))} {(-a)} {(-n)} 
                  {(DQ ($ VSub_DollarName '$datafile'))} {(-a)} {(-s)} {(DQ ($ VSub_DollarName '$datafile'))}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Case
              to_match: {($ VSub_DollarName '$png')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (.png)}]
                  spids: [1696 1698 1700 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:png spids:[1706])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$png') (.png))}
                          spids: [1706]
                        )
                      ]
                      spids: [1706]
                    )
                  ]
                  spids: [1703 1704 1712 16777215]
                )
              ]
              spids: [1689 1693 1715]
            )
            (C {($ VSub_DollarName '$memusagestat')} {($ VSub_DollarName '$memusagestat_args')} 
              {(DQ ($ VSub_DollarName '$datafile'))} {(DQ ($ VSub_DollarName '$png'))}
            )
          ]
          spids: [16777215 1682]
        )
      ]
      spids: [16777215 1730]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$data'))} {(-a)} {(-n)} 
                  {(DQ ($ VSub_DollarName '$datafile'))}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$datafile'))})]
          spids: [16777215 1752]
        )
      ]
      spids: [16777215 1763]
    )
    (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_DollarName '$result')})
  ]
)