(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHAT)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$1')}
          spids: [13]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:bench)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$2')}
          spids: [16]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:header)
          op: assign_op.Equal
          rhs: {(DQ <'rev '>)}
          spids: [20]
        )
      ]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: (condition.Shell commands:[(C {<read>} {<line>})])
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(SQ <'$line'>)} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:header)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$header') <'  '> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$line') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              )
                            }
                          spids: [52]
                        )
                      ]
                    )
                  ]
                  spids: [34 49]
                )
              ]
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_Less '<'>
          loc: (redir_loc.Fd fd:0)
          arg: {($ Id.VSub_DollarName '$bench') (DQ <_settings.txt>)}
        )
      ]
    )
    (command.Simple
      words: [{<echo>} {($ Id.VSub_DollarName '$header')}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.out.header>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>} {($ Id.VSub_DollarName '$WHAT') <.out>}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.out.header>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <'set title \''> ($ Id.VSub_DollarName '$WHAT') <'\''>)}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <'set key autotitle columnhead outside '>)}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <'set xtics rotate 1'>)}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <'set term pdf color rounded enhanced fontscale 0.35 size 7in,5in'>)}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {<set>} {<output>} {(DQ <'\''>) ($ Id.VSub_DollarName '$WHAT') <.pdf> (DQ <'\''>)}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:col)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [(C {<cat>} {<settings.txt>}) (C {<wc>} {<-l>})]
                    negated: F
                  )
              )
            }
          spids: [163]
        )
      ]
    )
    (command.Simple
      words: [
        {<echo>}
        {
          (DQ <'plot for [col=2:'> ($ Id.VSub_DollarName '$col') <'+1] \''> 
            ($ Id.VSub_DollarName '$WHAT') <'.out.header\' using 0:col:xticlabels(1) with lines'>
          )
        }
      ]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <' '>)}]
      redirects: [
        (redir
          op: <Id.Redir_DGreat '>>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<gnuplot>} {<-persist>}]
      redirects: [
        (redir
          op: <Id.Redir_Less '<'>
          loc: (redir_loc.Fd fd:0)
          arg: {($ Id.VSub_DollarName '$WHAT') <.gnuplot>}
        )
      ]
      do_fork: T
    )
    (C {<rm>} {($ Id.VSub_DollarName '$WHAT') <.out.header>} {($ Id.VSub_DollarName '$WHAT') <.gnuplot>})
  ]
)