(command.CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (C {(source)} {(build/common.sh)})
    (command.FuncDef
      name: get-cpplint
      body: 
        (command.BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(_tmp)})
            (C {(wget)} {(--directory)} {(_tmp)} 
              {(https) (Lit_Other ':') 
                (//raw.githubusercontent.com/google/styleguide/gh-pages/cpplint/cpplint.py)
              }
            )
            (C {(chmod)} {(Lit_Other '+') (x)} {(_tmp/cpplint.py)})
          ]
        )
    )
    (command.FuncDef
      name: cpplint
      body: 
        (command.BraceGroup
          children: [
            (C {(_tmp/cpplint.py)} {(--filter)} {(-readability/todo) (Lit_Comma ',') (-legal/copyright)} 
              (word.BracedWordTree
                parts: [(Lit_Other '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              ) 
              (word.BracedWordTree
                parts: [(shell/) (Lit_Other '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              )
            )
          ]
        )
    )
    (command.FuncDef
      name: clang-format
      body: 
        (command.BraceGroup
          children: [
            (C {($ VSub_DollarName '$CLANG_DIR') (/bin/clang-format)} 
              {(-style) (Lit_Other '=') (DQ ('{BasedOnStyle: Google, IndentCaseLabels: false}'))} {(DQ ($ VSub_At '$@'))}
            )
          ]
        )
    )
    (command.FuncDef
      name: format-oil
      body: 
        (command.BraceGroup
          children: [
            (C {(clang-format)} {(-i)} 
              (word.BracedWordTree
                parts: [(Lit_Other '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              ) 
              (word.BracedWordTree
                parts: [(shell/) (Lit_Other '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              )
            )
            (C {(git)} {(diff)})
          ]
        )
    )
    (command.FuncDef
      name: format-demo
      body: 
        (command.BraceGroup
          children: [(C {(clang-format)} {(-i)} {(demo/) (Lit_Other '*') (.cc)}) (C {(git)} {(diff)})]
        )
    )
    (command.FuncDef
      name: bin-pep8
      body: 
        (command.BraceGroup
          children: [
            (C {(word_part.TildeSubPart token:<Lit_TildeLike '~'>) (/.local/bin/pep8)} 
              {(DQ ($ VSub_At '$@'))}
            )
          ]
        )
    )
    (command.FuncDef
      name: find-src
      body: 
        (command.BraceGroup
          children: [
            (C {(find)} {(.)} {(SQ <'('>)} {(-type)} {(d)} {(-a)} {(-name)} {(SQ <'_*'>)} {(-o)} {(-name)} 
              {(testdata)} {(-o)} {(-name)} {($ VSub_DollarName '$PY27')} {(SQ <')'>)} {(-a)} {(-prune)} {(-o)} {(SQ <'('>)} {(-name)} 
              {(SQ <'*.py'>)} {(-o)} {(-name)} {(SQ <'*.sh'>)} {(-o)} {(-name)} {(SQ <'*.asdl'>)} {(-o)} {(-name)} {(SQ <'*.[ch]'>)} 
              {(SQ <')'>)} {(-a)} {(-print)}
            )
          ]
        )
    )
    (command.FuncDef
      name: find-tabs
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (C {(find-src)})
                (C {(xargs)} {(grep)} {(-n)} 
                  {
                    (word_part.SingleQuotedPart
                      left: <Left_DollarSingleQuote "$'">
                      tokens: [<Char_OneChar '\\t'>]
                    )
                  }
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.FuncDef
      name: find-long-lines
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (C {(find-src)})
                (C {(xargs)} {(grep)} {(-n)} {(SQ <'^.\\{81\\}'>)})
                (C {(grep)} {(-v)} {(SQ <http>)})
              ]
              negated: F
            )
          ]
        )
    )
    (command.FuncDef
      name: bin-flake8
      body: 
        (command.BraceGroup
          children: [
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ubuntu_flake8)
                  op: Equal
                  rhs: {(word_part.TildeSubPart token:<Lit_TildeLike '~'>) (/.local/bin/flake8)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$ubuntu_flake8'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {($ VSub_DollarName '$ubuntu_flake8')} {(DQ ($ VSub_At '$@'))})]
                )
              ]
              else_action: [(C {(flake8)} {(DQ ($ VSub_At '$@'))})]
            )
          ]
        )
    )
    (command.FuncDef
      name: flake8-all
      body: 
        (command.BraceGroup
          children: [
            (command.Assignment
              keyword: Assign_Local
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:dirs)
                  op: Equal
                  rhs: 
                    {(word_part.ArrayLiteralPart words:[{(asdl)} {(bin)} {(core)} {(osh)} {(opy)}])}
                )
              ]
            )
            (command.Assignment
              keyword: Assign_Local
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:exclude)
                  op: Equal
                  rhs: 
                    {
                      (word_part.ArrayLiteralPart
                        words: [
                          {(--exclude)}
                          {(SQ <'opy/_regtest,opy/byterun,opy/tools/astgen.py,opy/lib/opcode.py'>)}
                        ]
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:fatal_errors)
                  op: Equal
                  rhs: {(SQ <'E901,E999,F821,F822,F823,F401'>)}
                )
              ]
            )
            (C {(bin-flake8)} 
              {
                (DQ 
                  (word_part.BracedVarSub
                    token: <VSub_Name dirs>
                    bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                  )
                )
              } 
              {
                (DQ 
                  (word_part.BracedVarSub
                    token: <VSub_Name exclude>
                    bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                  )
                )
              } {(--count)} {(--select)} {(DQ ($ VSub_DollarName '$fatal_errors'))} {(--show-source)} {(--statistics)}
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ignored)
                  op: Equal
                  rhs: 
                    {
                      (SQ 
                        <
'E125,E701,E241,E121,E111,E114,E128,E262,E226,E302,E265,E290,E202,E203,C901,E261,E301,W293,E402,E116,E741,W391,E127'
                        >
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ignored_for_now)
                  op: Equal
                  rhs: {(SQ <'W291,E501,E303'>)}
                )
              ]
            )
            (C {(bin-flake8)} 
              {
                (DQ 
                  (word_part.BracedVarSub
                    token: <VSub_Name dirs>
                    bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                  )
                )
              } 
              {
                (DQ 
                  (word_part.BracedVarSub
                    token: <VSub_Name exclude>
                    bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                  )
                )
              } {(--ignore)} {(DQ ($ VSub_DollarName '$ignored') (',') ($ VSub_DollarName '$ignored_for_now'))} 
              {(--count)} {(--exit-zero)} {(--max-complexity) (Lit_Other '=') (10)} {(--max-line-length) (Lit_Other '=') (127)} 
              {(--statistics)}
            )
          ]
        )
    )
    (command.FuncDef name:travis body:(command.BraceGroup children:[(C {(flake8-all)})]))
    (C {(DQ ($ VSub_At '$@'))})
  ]
)