(command.CommandList
  children: [
    (command.FuncDef
      name: pktgen
      body: 
        (command.BraceGroup
          children: [
            (C {(../pktgen/pktgen_bench_xmit_mode_netif_receive.sh)} {(-i)} {($ VSub_DollarName '$IFC')} 
              {(-s)} {(64)} {(-m)} 
              {(90) (Lit_Other ':') (e2) (Lit_Other ':') (ba) (Lit_Other ':') (ff) (Lit_Other ':') (ff) 
                (Lit_Other ':') (ff)
              } {(-d)} {(192.168.0.1)} {(-t)} {(4)}
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:dropped)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(tc)} {(-s)} {(qdisc)} {(show)} {(dev)} {($ VSub_DollarName '$IFC')})
                                  (C {(tail)} {(-3)})
                                  (C {(awk)} {(SQ <'/drop/{print $7}'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$dropped'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ ('0,'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (FAIL))})]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ('Successfully filtered '))} {($ VSub_DollarName '$dropped')} 
                  {(DQ (' packets'))}
                )
              ]
            )
          ]
        )
    )
    (command.FuncDef
      name: test
      body: 
        (command.BraceGroup
          children: [
            (C {(echo)} {(-n)} {(DQ ("Loading bpf program '") ($ VSub_Number '$2') ("'... "))})
            (C {(tc)} {(qdisc)} {(add)} {(dev)} {($ VSub_DollarName '$IFC')} {(clsact)})
            (C {(tc)} {(filter)} {(add)} {(dev)} {($ VSub_DollarName '$IFC')} {(ingress)} {(bpf)} {(da)} 
              {(obj)} {($ VSub_Number '$1')} {(sec)} {($ VSub_Number '$2')}
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:status)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_DollarName '$status')} {(-ne)} {(0)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (FAIL))})]
                )
              ]
              else_action: [(C {(echo)} {(DQ (ok))}) (C {(pktgen)})]
            )
            (C {(tc)} {(qdisc)} {(del)} {(dev)} {($ VSub_DollarName '$IFC')} {(clsact)})
          ]
        )
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:IFC) op:Equal rhs:{(test_veth)})]
    )
    (C {(ip)} {(link)} {(add)} {(name)} {($ VSub_DollarName '$IFC')} {(type)} {(veth)} {(peer)} {(name)} 
      {(pair_) ($ VSub_DollarName '$IFC')}
    )
    (C {(ip)} {(link)} {(set)} {($ VSub_DollarName '$IFC')} {(up)})
    (C {(ip)} {(link)} {(set)} {(pair_) ($ VSub_DollarName '$IFC')} {(up)})
    (C {(test)} {(./parse_simple.o)} {(simple)})
    (C {(test)} {(./parse_varlen.o)} {(varlen)})
    (C {(test)} {(./parse_ldabs.o)} {(ldabs)})
    (C {(ip)} {(link)} {(del)} {(dev)} {($ VSub_DollarName '$IFC')})
  ]
)