(command.CommandList
  children: [
    (C {<echo>} {(DQ <'/*'>)})
    (C {<echo>} {(DQ <' * hashsize.h -- hash and token table constants'>)})
    (C {<echo>} {(DQ <' */'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CAPS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<Caps>})
                )
              )
            }
          spids: [115]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TABSIZE)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<grep>} {<-v>} {(SQ <'^[ #]'>)} {($ Id.VSub_DollarName '$CAPS')})
                      (C {<grep>} {<-v>} {(DQ <'^'> <Id.Lit_Dollar '$'>)})
                      (C {<grep>} {<-v>} {(DQ <'^capalias'>)})
                      (C {<grep>} {<-v>} {(DQ <'^infoalias'>)})
                      (C {<wc>} {<-l>})
                    ]
                    negated: F
                  )
              )
            }
          spids: [124]
        )
      ]
    )
    (C {<echo>} {(DQ )})
    (C {<echo>} {(DQ <'#define CAPTABSIZE\t'> (${ Id.VSub_Name TABSIZE))})
    (C {<echo>} {(DQ <'#define HASHTABSIZE\t('> (${ Id.VSub_Name TABSIZE) <' * 2)'>)})
  ]
)