(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (FuncDef
      name: compare-opcodes
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pat)
                  op: Equal
                  rhs: 
                    {
                      (SQ 
                        <
'self.emit|self.unaryOp|self.binaryOp|self._nameOp|self._implicitNameOp|INPLACE|CALL_FUNCTION'
                        >
                      )
                    }
                  spids: [54]
                )
              ]
              spids: [52]
            )
            (Pipeline
              children: [
                (C {(egrep)} {(DQ ($ VSub_Name '$pat'))} {(compiler2/pycodegen.py)})
                (C {(egrep)} {(-o)} {(SQ <'[A-Z][A-Z_]+'>)})
                (C {(sort)})
                (SimpleCommand
                  words: [{(uniq)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(_tmp/opcodes-emitted.txt)}
                      spids: [87]
                    )
                  ]
                )
              ]
              negated: F
            )
            (SimpleCommand
              words: [
                {(python2)}
                {(-c)}
                {
                  (SQ <'\n'> <'from compiler2 import opcode\n'> <'names = sorted(opcode.opmap)\n'> 
                    <'for n in names:\n'> <'  print(n)\n'>
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(_tmp/opcodes-defined.txt)}
                  spids: [102]
                )
              ]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[97])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [
                    (C {(diff)} {(-u)} 
                      (BracedWordTree
                        parts: [(_tmp/opcodes-) (BracedAltPart words:[{(defined)} {(emitted)}]) (.txt)]
                      )
                    )
                    (C {(tee)} {(_tmp/opcode-diff.txt)})
                  ]
                  negated: F
                )
                (C {(true)})
              ]
            )
            (Pipeline
              children: [
                (C {(grep)} {(SQ <'^+'>)} {(_tmp/opcode-diff.txt)})
                (C {(grep)} {(-v)} {(SLICE)})
              ]
              negated: F
            )
            (C {(wc)} {(-l)} 
              (BracedWordTree
                parts: [(_tmp/opcodes-) (BracedAltPart words:[{(defined)} {(emitted)}]) (.txt)]
              )
            )
          ]
          spids: [45]
        )
      spids: [41 44]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)