(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:srctree)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Number '$0'))})])
                left_token: <Left_CommandSub '$('>
                spids: [4 10]
              )
            }
          spids: [3]
        )
      ]
      spids: [3]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SHOW_ERROR) op:Equal rhs:{(SQ )} spids:[13])]
      spids: [13]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (--show-error))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:SHOW_ERROR) op:Equal rhs:{(1)} spids:[36])]
              spids: [36]
            )
            (AndOr children:[(C {(shift)})(C {(true)})] op_id:Op_DPipe)
          ]
          spids: [-1 33]
        )
      ]
      spids: [-1 46]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:gccplugins_dir)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {($ VSub_Number '$3')} {(-print-file-name) (Lit_Other '=') (plugin)})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [50 56]
              )
            }
          spids: [49]
        )
      ]
      spids: [49]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:plugincc)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (SimpleCommand
                        words: [
                          {($ VSub_Number '$1')}
                          {(-E)}
                          {(-x)}
                          {(c) (Lit_Other '+') (Lit_Other '+')}
                          {(-)}
                          {(-o)}
                          {(/dev/null)}
                          {(-I) (DQ (${ VSub_Name srctree)) (/gcc-plugins)}
                          {(-I) (DQ (${ VSub_Name gccplugins_dir)) (/include)}
                        ]
                        redirects: [
                          (Redir
                            op_id: Redir_GreatAnd
                            fd: 2
                            arg_word: {(1)}
                            spids: [92]
                          )
                          (HereDoc
                            op_id: Redir_DLess
                            fd: -1
                            body: 
                              {
                                (DQ ('#include ') (Right_DoubleQuote '"') (gcc-common.h) 
                                  (Right_DoubleQuote '"') ('\n') ('#if BUILDING_GCC_VERSION >= 4008 || defined(ENABLE_BUILD_WITH_CXX)\n') ('#warning ') 
                                  ($ VSub_Number '$2') (' CXX\n') ('#else\n') ('#warning ') ($ VSub_Number '$1') (' CC\n') ('#endif\n')
                                )
                              }
                            do_expansion: True
                            here_end: EOF
                            was_filled: True
                            spids: [95]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [59 113]
              )
            }
          spids: [58]
        )
      ]
      spids: [58]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$SHOW_ERROR'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ (${ VSub_Name plugincc))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[156])]
                    )
                  ]
                  spids: [-1 145]
                )
              ]
              spids: [-1 160]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 128]
        )
      ]
      spids: [-1 167]
    )
    (Case
      to_match: {(DQ ($ VSub_Name '$plugincc'))}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '*') (DQ ($ VSub_Number '$1') (' CC')) (Lit_Other '*')}]
          action: [(C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(exit)} {(0)})]
          spids: [179 185 200 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other '*') (DQ ($ VSub_Number '$2') (' CXX')) (Lit_Other '*')}]
          spids: [204 210 217 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [(C {(exit)} {(1)})]
          spids: [221 222 230 -1]
        )
      ]
      spids: [170 176 232]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:plugincc)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (SimpleCommand
                        words: [
                          {($ VSub_Number '$2')}
                          {(-c)}
                          {(-x)}
                          {(c) (Lit_Other '+') (Lit_Other '+')}
                          {(-std) (Lit_Other '=') (gnu) (Lit_Other '+') (Lit_Other '+') (98)}
                          {(-)}
                          {(-fsyntax-only)}
                          {(-I) (DQ (${ VSub_Name srctree)) (/gcc-plugins)}
                          {(-I) (DQ (${ VSub_Name gccplugins_dir)) (/include)}
                        ]
                        redirects: [
                          (Redir
                            op_id: Redir_GreatAnd
                            fd: 2
                            arg_word: {(1)}
                            spids: [277]
                          )
                          (HereDoc
                            op_id: Redir_DLess
                            fd: -1
                            body: 
                              {
                                (DQ ('#include ') (Right_DoubleQuote '"') (gcc-common.h) 
                                  (Right_DoubleQuote '"') ('\n') ('class test {\n') ('public:\n') ('\tint test;\n') ('} test = {\n') ('\t.test = 1\n') ('};\n')
                                )
                              }
                            do_expansion: True
                            here_end: EOF
                            was_filled: True
                            spids: [280]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [239 295]
              )
            }
          spids: [238]
        )
      ]
      spids: [238]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})]
          action: [(C {(echo)} {(DQ ($ VSub_Number '$2'))}) (C {(exit)} {(0)})]
          spids: [-1 310]
        )
      ]
      spids: [-1 324]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$SHOW_ERROR'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ (${ VSub_Name plugincc))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[352])]
            )
          ]
          spids: [-1 341]
        )
      ]
      spids: [-1 355]
    )
    (C {(exit)} {(1)})
  ]
)