(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 112]
              )
            }
          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:[155])]
                    )
                  ]
                  spids: [-1 144]
                )
              ]
              spids: [-1 159]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 127]
        )
      ]
      spids: [-1 166]
    )
    (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: [178 184 199 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*") (DQ ($ VSub_Number "$2") (" CXX")) (Lit_Other "*")}]
          spids: [203 209 216 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [(C {(exit)} {(1)})]
          spids: [220 221 229 -1]
        )
      ]
      spids: [169 175 231]
    )
    (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: [276]
                          )
                          (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: [279]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [238 293]
              )
            }
          spids: [237]
        )
      ]
      spids: [237]
    )
    (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 308]
        )
      ]
      spids: [-1 322]
    )
    (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:[350])]
            )
          ]
          spids: [-1 339]
        )
      ]
      spids: [-1 353]
    )
    (C {(exit)} {(1)})
  ]
)