(command.CommandList
  children: [
    (C {(KW_Set set)} {(-o)} {(nounset)})
    (C {(KW_Set set)} {(-o)} {(pipefail)})
    (C {(KW_Set set)} {(-o)} {(errexit)})
    (C {(source)} {(build/common.sh)})
    (command.ShFunction
      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.ShFunction
      name: cpplint
      body: 
        (command.BraceGroup
          children: [
            (C {(_tmp/cpplint.py)} {(--filter)} {(-readability/todo) (Lit_Comma ',') (-legal/copyright)} 
              (word.BracedTree
                parts: [(Lit_Star '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              ) (word.BracedTree parts:[(shell/) (Lit_Star '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])])
            )
          ]
        )
    )
    (command.ShFunction
      name: clang-format
      body: 
        (command.BraceGroup
          children: [
            (C {($ VSub_DollarName '$CLANG_DIR') (/bin/clang-format)} 
              {(-style) (Lit_Equals '=') (DQ ('{BasedOnStyle: Google, IndentCaseLabels: false}'))} {(DQ ($ VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: format-oil
      body: 
        (command.BraceGroup
          children: [
            (C {(clang-format)} {(-i)} 
              (word.BracedTree
                parts: [(Lit_Star '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              ) (word.BracedTree parts:[(shell/) (Lit_Star '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])])
            )
            (C {(git)} {(diff)})
          ]
        )
    )
    (command.ShFunction
      name: format-demo
      body: 
        (command.BraceGroup
          children: [(C {(clang-format)} {(-i)} {(demo/) (Lit_Star '*') (.cc)}) (C {(git)} {(diff)})]
        )
    )
    (command.ShFunction
      name: bin-pep8
      body: 
        (command.BraceGroup
          children: [
            (C {(word_part.TildeSub token:<Lit_TildeLike '~'>) (/.local/bin/pep8)} 
              {(DQ ($ VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      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.ShFunction
      name: find-tabs
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (C {(find-src)})
                (C {(xargs)} {(grep)} {(-n)} 
                  {(single_quoted left:<Left_SingleQuoteC "$'"> tokens:[<Char_OneChar '\\t'>])}
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      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.ShFunction
      name: bin-flake8
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Lit_VarLike 'ubuntu_flake8=') (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.ShFunction
      name: flake8-all
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(-a)} 
              {(Lit_VarLike 'dirs=') 
                (sh_array_literal
                  left: <Op_LParen '('>
                  words: [{(asdl)} {(bin)} {(core)} {(osh)} {(opy)}]
                )
              }
            )
            (C {(local)} {(-a)} 
              {(Lit_VarLike 'exclude=') 
                (sh_array_literal
                  left: <Op_LParen '('>
                  words: [
                    {(--exclude)}
                    {(SQ <'opy/_regtest,opy/byterun,opy/tools/astgen.py,opy/lib/opcode.py'>)}
                  ]
                )
              }
            )
            (C {(local)} {(Lit_VarLike 'fatal_errors=') (SQ <'E901,E999,F821,F822,F823,F401'>)})
            (C {(bin-flake8)} 
              {
                (DQ 
                  (braced_var_sub
                    token: <VSub_Name dirs>
                    bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                  )
                )
              } {(DQ (braced_var_sub token:<VSub_Name exclude> bracket_op:(bracket_op.WholeArray op_id:Lit_At)))} 
              {(--count)} {(--select)} {(DQ ($ VSub_DollarName '$fatal_errors'))} {(--show-source)} {(--statistics)}
            )
            (C {(local)} 
              {(Lit_VarLike 'ignored=') 
                (SQ 
                  <
'E125,E701,E241,E121,E111,E114,E128,E262,E226,E302,E265,E290,E202,E203,C901,E261,E301,W293,E402,E116,E741,W391,E127'
                  >
                )
              }
            )
            (C {(local)} {(Lit_VarLike 'ignored_for_now=') (SQ <'W291,E501,E303'>)})
            (C {(bin-flake8)} 
              {
                (DQ 
                  (braced_var_sub
                    token: <VSub_Name dirs>
                    bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                  )
                )
              } {(DQ (braced_var_sub 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_Equals '=') (10)} {(--max-line-length) (Lit_Equals '=') (127)} {(--statistics)}
            )
          ]
        )
    )
    (command.ShFunction name:travis body:(command.BraceGroup children:[(C {(flake8-all)})]))
    (C {(DQ ($ VSub_At '$@'))})
  ]
)