(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:{(EmptyPart)} 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 ops:[Op_DPipe] children:[(C {(shift)}) (C {(true)})])
          ]
          spids: [16777215 33]
        )
      ]
      spids: [16777215 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: <Redir_GreatAnd '2>&'>
                            fd: 2
                            arg_word: {(1)}
                          )
                          (HereDoc
                            op: <Redir_DLess '<<'>
                            fd: 16777215
                            here_begin: {(EOF)}
                            here_end_span_id: 113
                            stdin_parts: [
                              ('#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')
                            ]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [59 114]
              )
            }
          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:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                  ]
                  spids: [16777215 146]
                )
              ]
              spids: [16777215 161]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 129]
        )
      ]
      spids: [16777215 168]
    )
    (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'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [180 186 201 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*') (DQ ($ VSub_Number '$2') (' CXX')) (Lit_Other '*')}]
          spids: [205 211 218 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})]
          spids: [222 223 231 16777215]
        )
      ]
      spids: [171 177 233]
    )
    (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: <Redir_GreatAnd '2>&'>
                            fd: 2
                            arg_word: {(1)}
                          )
                          (HereDoc
                            op: <Redir_DLess '<<'>
                            fd: 16777215
                            here_begin: {(EOF)}
                            here_end_span_id: 296
                            stdin_parts: [
                              ('#include ')
                              (Right_DoubleQuote '"')
                              (gcc-common.h)
                              (Right_DoubleQuote '"')
                              ('\n')
                              ('class test {\n')
                              ('public:\n')
                              ('\tint test;\n')
                              ('} test = {\n')
                              ('\t.test = 1\n')
                              ('};\n')
                            ]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [240 297]
              )
            }
          spids: [239]
        )
      ]
      spids: [239]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})]
          action: [
            (C {(echo)} {(DQ ($ VSub_Number '$2'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [16777215 312]
        )
      ]
      spids: [16777215 326]
    )
    (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:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
          ]
          spids: [16777215 343]
        )
      ]
      spids: [16777215 357]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
  ]
)