(command.CommandList
  children: [
    (command.Simple
      words: [{(git)} {(log)} {(HEAD) (Id.Lit_TildeLike '~..HEAD')}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(last-commit)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(grep)} {(-qE)} {(SQ <'\\[ci skip\\]|\\[skip ci\\]'>)} {(last-commit)})
              terminator: <Id.Op_Semi ';'>
            )
          ]
          action: [
            (C {(cat)} {(last-commit)})
            (C {(echo)})
            (C {(echo)} {(DQ ('Build skipped as requested in the last commit.'))})
            (C {(touch)} {(ci-skip)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [22 36]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} 
                  {
                    (DQ 
                      (braced_var_sub
                        token: <Id.VSub_Name CI>
                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                      )
                    )
                  } {(Id.Lit_Equals '=') (Id.Lit_Equals '=')} {(true)} {(Id.Lit_RBracket ']')}
                )
              terminator: <Id.Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name SEMAPHORE>
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_Equals '=') (Id.Lit_Equals '=')} {(true)} {(Id.Lit_RBracket ']')}
                        )
                      terminator: <Id.Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [(C {(sudo)} {(apt-get)} {(update)} {(-qq)}) (C {(true)})]
                    )
                    (C {(sudo)} {(apt-get)} {(install)} {(-y)} {(libacl1-dev)} {(bc)} 
                      {(libsystemd-journal-dev)}
                    )
                    (C {(sudo)} {(add-apt-repository)} {(--yes)} 
                      {(ppa) (Id.Lit_Other ':') (pitti/systemd-semaphore)}
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [(C {(sudo)} {(apt-get)} {(update)} {(-qq)}) (C {(true)})]
                    )
                    (C {(sudo)} {(apt-get)} {(install)} {(-y)} {(libmount-dev)} {(libmount1)})
                    (C {(sudo)} {(add-apt-repository)} 
                      {(ppa) (Id.Lit_Other ':') (ubuntu-toolchain-r/test)} {(-y)}
                    )
                    (C {(sudo)} {(apt-get)} {(update)} {(-qq)})
                    (C {(sudo)} {(apt-get)} {(install)} {(gcc-5)} {(gcc-5-base)} {(libgcc-5-dev)} 
                      {(g) (Id.Lit_Other '+') (Id.Lit_Other '+') (-5)} {(libstdc) (Id.Lit_Other '+') (Id.Lit_Other '+') (-5-dev)} {(libseccomp-dev)} {(-y)} {(-qq)}
                    )
                    (C {(sudo)} {(update-alternatives)} {(--remove-all)} {(gcc)})
                    (C {(sudo)} {(update-alternatives)} {(--install)} {(/usr/bin/gcc)} {(gcc)} 
                      {(/usr/bin/gcc-5)} {(20)}
                    )
                    (C {(sudo)} {(update-alternatives)} {(--install)} 
                      {(/usr/bin/g) (Id.Lit_Other '+') (Id.Lit_Other '+')} {(g) (Id.Lit_Other '+') (Id.Lit_Other '+')} {(/usr/bin/g) (Id.Lit_Other '+') (Id.Lit_Other '+') (-5)} 
                      {(20)}
                    )
                  ]
                  spids: [93 113]
                )
              ]
            )
          ]
          spids: [66 86]
        )
      ]
    )
  ]
)