(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-o)} {(nounset)})
    (C {(Id.KW_Set set)} {(-o)} {(pipefail)})
    (C {(Id.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) (Id.Lit_Other ':') 
                (//raw.githubusercontent.com/google/styleguide/gh-pages/cpplint/cpplint.py)
              }
            )
            (C {(chmod)} {(Id.Lit_Other '+') (x)} {(_tmp/cpplint.py)})
          ]
        )
    )
    (command.ShFunction
      name: cpplint
      body: 
        (command.BraceGroup
          children: [
            (C {(_tmp/cpplint.py)} {(--filter)} 
              {(-readability/todo) (Id.Lit_Comma ',') (-legal/copyright)} (word.BracedTree parts:[(Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]) 
              (word.BracedTree
                parts: [(shell/) (Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              )
            )
          ]
        )
    )
    (command.ShFunction
      name: clang-format
      body: 
        (command.BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$CLANG_DIR') (/bin/clang-format)} 
              {(-style) (Id.Lit_Equals '=') (DQ ('{BasedOnStyle: Google, IndentCaseLabels: false}'))} {(DQ ($ Id.VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: format-oil
      body: 
        (command.BraceGroup
          children: [
            (C {(clang-format)} {(-i)} 
              (word.BracedTree
                parts: [(Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(cc)} {(h)}])]
              ) (word.BracedTree parts:[(shell/) (Id.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/) (Id.Lit_Star '*') (.cc)}) (C {(git)} {(diff)})]
        )
    )
    (command.ShFunction
      name: bin-pep8
      body: 
        (command.BraceGroup
          children: [
            (C 
              {(word_part.TildeSub token:(Token id:Id.Lit_TildeLike val:'~' span_id:251)) 
                (/.local/bin/pep8)
              } {(DQ ($ Id.VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: find-src
      body: 
        (command.BraceGroup
          children: [
            (C {(find)} {(.)} {(SQ (Token id:Id.Lit_Chars val:'(' span_id:288))} {(-type)} {(d)} {(-a)} 
              {(-name)} {(SQ (Token id:Id.Lit_Chars val:'_*' span_id:300))} {(-o)} {(-name)} {(testdata)} {(-o)} {(-name)} 
              {($ Id.VSub_DollarName '$PY27')} {(SQ (Token id:Id.Lit_Chars val:')' span_id:322))} {(-a)} {(-prune)} {(-o)} 
              {(SQ (Token id:Id.Lit_Chars val:'(' span_id:336))} {(-name)} {(SQ (Token id:Id.Lit_Chars val:'*.py' span_id:342))} {(-o)} {(-name)} 
              {(SQ (Token id:Id.Lit_Chars val:'*.sh' span_id:352))} {(-o)} {(-name)} {(SQ (Token id:Id.Lit_Chars val:'*.asdl' span_id:362))} {(-o)} {(-name)} 
              {(SQ (Token id:Id.Lit_Chars val:'*.[ch]' span_id:372))} {(SQ (Token id:Id.Lit_Chars val:')' span_id:378))} {(-a)} {(-print)}
            )
          ]
        )
    )
    (command.ShFunction
      name: find-tabs
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (C {(find-src)})
                (C {(xargs)} {(grep)} {(-n)} 
                  {
                    (single_quoted
                      left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:406)
                      tokens: [(Token id:Id.Char_OneChar val:'\\t' span_id:407)]
                    )
                  }
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: find-long-lines
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [
                (C {(find-src)})
                (C {(xargs)} {(grep)} {(-n)} {(SQ (Token id:Id.Lit_Chars val:'^.\\{81\\}' span_id:435))})
                (C {(grep)} {(-v)} {(SQ (Token id:Id.Lit_Chars val:http span_id:445))})
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: bin-flake8
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} 
              {(Id.Lit_VarLike 'ubuntu_flake8=') (Id.Lit_TildeLike '~') (/.local/bin/flake8)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$ubuntu_flake8'))})
                      terminator: (Token id:Id.Op_Semi val:';' span_id:475)
                    )
                  ]
                  action: [(C {($ Id.VSub_DollarName '$ubuntu_flake8')} {(DQ ($ Id.VSub_At '$@'))})]
                  spids: [466 477]
                )
              ]
              else_action: [(C {(flake8)} {(DQ ($ Id.VSub_At '$@'))})]
            )
          ]
        )
    )
    (command.ShFunction
      name: flake8-all
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(-a)} 
              {(Id.Lit_VarLike 'dirs=') 
                (sh_array_literal
                  left: (Token id:Id.Op_LParen val:'(' span_id:518)
                  words: [{(asdl)} {(bin)} {(core)} {(osh)} {(opy)}]
                )
              }
            )
            (C {(local)} {(-a)} 
              {(Id.Lit_VarLike 'exclude=') 
                (sh_array_literal
                  left: (Token id:Id.Op_LParen val:'(' span_id:549)
                  words: [
                    {(--exclude)}
                    {
                      (SQ 
                        (Token
                          id: Id.Lit_Chars
                          val: 'opy/_regtest,opy/byterun,opy/tools/astgen.py,opy/lib/opcode.py'
                          span_id: 555
                        )
                      )
                    }
                  ]
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'fatal_errors=') 
                (SQ (Token id:Id.Lit_Chars val:'E901,E999,F821,F822,F823,F401' span_id:573))
              }
            )
            (C {(bin-flake8)} 
              {
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:dirs span_id:581)
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              } 
              {
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:exclude span_id:590)
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              } {(--count)} {(--select)} {(DQ ($ Id.VSub_DollarName '$fatal_errors'))} {(--show-source)} {(--statistics)}
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'ignored=') 
                (SQ 
                  (Token
                    id: Id.Lit_Chars
                    val: 
'E125,E701,E241,E121,E111,E114,E128,E262,E226,E302,E265,E290,E202,E203,C901,E261,E301,W293,E402,E116,E741,W391,E127'
                    span_id: 652
                  )
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'ignored_for_now=') 
                (SQ (Token id:Id.Lit_Chars val:'W291,E501,E303' span_id:664))
              }
            )
            (C {(bin-flake8)} 
              {
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:dirs span_id:677)
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              } 
              {
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:exclude span_id:686)
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              } {(--ignore)} {(DQ ($ Id.VSub_DollarName '$ignored') (',') ($ Id.VSub_DollarName '$ignored_for_now'))} 
              {(--count)} {(--exit-zero)} {(--max-complexity) (Id.Lit_Equals '=') (10)} 
              {(--max-line-length) (Id.Lit_Equals '=') (127)} {(--statistics)}
            )
          ]
        )
    )
    (command.ShFunction name:travis body:(command.BraceGroup children:[(C {(flake8-all)})]))
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)