(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CC spids:[16])
          op: Equal
          rhs: 
            {
              (word_part.BracedVarSub
                token: <VSub_Name CC>
                suffix_op: 
                  (suffix_op.StringUnary
                    op_id: VTest_Hyphen
                    arg_word: {(DQ ('./xgcc -B') ($ VSub_Number '$1') (/))}
                  )
                spids: [17 25]
              )
            }
          spids: [16]
        )
      ]
      spids: [16]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CPP spids:[27])
          op: Equal
          rhs: 
            {
              (word_part.BracedVarSub
                token: <VSub_Name CPP>
                suffix_op: 
                  (suffix_op.StringUnary
                    op_id: VTest_Hyphen
                    arg_word: 
                      {
                        (word_part.CommandSubPart
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(echo)} {(${ VSub_Name CC)} {(-E)} 
                                  {(-I) (DQ ($ VSub_Number '$1') (/))}
                                )
                              ]
                            )
                          left_token: <Left_Backtick '`'>
                          spids: [31 45]
                        )
                      }
                  )
                spids: [28 46]
              )
            }
          spids: [27]
        )
      ]
      spids: [27]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SED spids:[48])
          op: Equal
          rhs: {(sed)}
          spids: [48]
        )
      ]
      spids: [48]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(st-dummy.c)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(KW_Bang '!') (EOF) (KW_Bang '!')}
          here_end_span_id: 90
          stdin_parts: [
            ('#include <sys/types.h>\n')
            ('#include <stddef.h>\n')
            ('#include <stdarg.h>\n')
            ('#include <stdio.h>\n')
            ('#include <time.h>\n')
            ('#include <signal.h>\n')
            ('#ifdef size_t\n')
            ('typedef size_t Xsize_t;\n')
            ('#elif defined(__SIZE_TYPE__)\n')
            ('typedef __SIZE_TYPE__ Xsize_t;\n')
            ('#endif\n')
            ('#ifdef va_list\n')
            ('typedef va_list XXXva_list;\n')
            ('#endif\n')
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.SimpleCommand
                  words: [{(${ VSub_Name CPP)} {(st-dummy.c)}]
                  redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(TMP)})]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(true)})]
          spids: [16777215 105]
        )
      ]
      else_action: [
        (command.Sentence
          child: 
            (command.SimpleCommand
              words: [
                {(echo)}
                {(DQ ('scan-types: could not invoke ') (${ VSub_Name CPP) (' on st-dummy.c'))}
              ]
              redirects: [(redir.Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})]
            )
          terminator: <Op_Semi ';'>
        )
        (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
      spids: [109 131]
    )
    (command.SimpleCommand
      words: [{(tr)} {(SQ <'\t'>)} {(SQ <' '>)}]
      redirects: [
        (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(TMP)})
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(st-dummy.out)})
      ]
    )
    (command.ForEach
      iter_name: TYPE
      iter_words: [
        {(dev_t)}
        {(clock_t)}
        {(fpos_t)}
        {(gid_t)}
        {(ino_t)}
        {(mode_t)}
        {(nlink_t)}
        {(off_t)}
        {(pid_t)}
        {(size_t)}
        {(ssize_t)}
        {(time_t)}
        {(uid_t)}
        {(va_list)}
        {(int32_t)}
        {(uint_32_t)}
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:IMPORTED spids:[193])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(eval)} {(SQ <'echo $'>) (DQ ($ VSub_DollarName '$TYPE'))})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [194 203]
                      )
                    }
                  spids: [193]
                )
              ]
              spids: [193]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name IMPORTED))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(eval)} 
                      {(DQ ($ VSub_DollarName '$TYPE') ("='") ($ VSub_DollarName '$IMPORTED'))}
                    )
                  ]
                  spids: [16777215 222]
                )
              ]
              else_action: [
                (C {(rm)} {(-f)} {(TMP)})
                (command.SimpleCommand
                  words: [
                    {(${ VSub_Name SED)}
                    {(-n)}
                    {(-e)}
                    {
                      (DQ ('s|.*typedef  *') (Lit_Other '\\') ('(.*') (Lit_Other '\\') (') X*') 
                        ($ VSub_DollarName '$TYPE') (' *;.*|') (Lit_Other '\\') ('1|w TMP')
                      )
                    }
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Redir_Less '<'>
                      fd: 16777215
                      arg_word: {(st-dummy.out)}
                    )
                    (redir.Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(/dev/null)}
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: (C {(Lit_Other '[')} {(-s)} {(TMP)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(eval)} 
                          {
                            (DQ ("VALUE='") 
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.SimpleCommand
                                        words: [
                                          {(${ VSub_Name SED)}
                                          {(-e)}
                                          {(SQ <'s| *$||'>)}
                                          {(-e)}
                                          {(SQ <'2,$d'>)}
                                        ]
                                        redirects: [
                                          (redir.Redir
                                            op: <Redir_Less '<'>
                                            fd: 16777215
                                            arg_word: {(TMP)}
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [304 323]
                              ) ("'")
                            )
                          }
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {(echo)} {(DQ ($ VSub_DollarName '$VALUE'))})
                                        (command.SimpleCommand
                                          words: [{(grep)} {(DQ (' '))}]
                                          redirects: [
                                            (redir.Redir
                                              op: <Redir_Great '>'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                          ]
                                        )
                                      ]
                                      negated: F
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(true)})]
                              spids: [16777215 369]
                            )
                          ]
                          else_action: [
                            (C {(rm)} {(-f)} {(TMP)})
                            (command.SimpleCommand
                              words: [
                                {(${ VSub_Name SED)}
                                {(-n)}
                                {(-e)}
                                {
                                  (DQ ('s|.*typedef[ \t][ \t]*') (Lit_Other '\\') ('(.*[^a-zA-Z0-9_]') 
                                    (Lit_Other '\\') (')') (${ VSub_Name VALUE) ('[ \t]*;.*|') (Lit_Other '\\') ('1|w TMP')
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Redir_Less '<'>
                                  fd: 16777215
                                  arg_word: {(st-dummy.out)}
                                )
                                (redir.Redir
                                  op: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {(Lit_Other '[')} {(-s)} {(TMP)} {(Lit_Other ']')})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eval)} 
                                      {
                                        (DQ ("VALUE='") 
                                          (word_part.CommandSubPart
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.SimpleCommand
                                                    words: [
                                                      {(${ VSub_Name SED)}
                                                      {(-e)}
                                                      {(SQ <'2,$d'>)}
                                                      {(-e)}
                                                      {(SQ <'s|[ \t]*$||'>)}
                                                    ]
                                                    redirects: [
                                                      (redir.Redir
                                                        op: <Redir_Less '<'>
                                                        fd: 16777215
                                                        arg_word: {(TMP)}
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [430 449]
                                          ) ("'")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 423]
                                )
                              ]
                              spids: [16777215 454]
                            )
                          ]
                          spids: [374 457]
                        )
                        (C {(eval)} 
                          {
                            (DQ ($ VSub_DollarName '$TYPE') ("='") ($ VSub_DollarName '$VALUE') ("'"))
                          }
                        )
                      ]
                      spids: [16777215 293]
                    )
                  ]
                  spids: [16777215 470]
                )
              ]
              spids: [234 473]
            )
          ]
          spids: [190 475]
        )
      spids: [155 188]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(KW_Bang '!') (EOF) (KW_Bang '!')}
          here_end_span_id: 683
          stdin_parts: [
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('clock_t ')
            (word_part.BracedVarSub
              token: <VSub_Name clock_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [490 497]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('dev_t ')
            (word_part.BracedVarSub
              token: <VSub_Name dev_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [504 511]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('fpos_t ')
            (word_part.BracedVarSub
              token: <VSub_Name fpos_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('long ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [518 525]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('gid_t ')
            (word_part.BracedVarSub
              token: <VSub_Name gid_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [532 539]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('ino_t ')
            (word_part.BracedVarSub
              token: <VSub_Name ino_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [546 553]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('mode_t ')
            (word_part.BracedVarSub
              token: <VSub_Name mode_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [560 567]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('nlink_t ')
            (word_part.BracedVarSub
              token: <VSub_Name nlink_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [574 581]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('off_t ')
            (word_part.BracedVarSub
              token: <VSub_Name off_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('long ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [588 595]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('pid_t ')
            (word_part.BracedVarSub
              token: <VSub_Name pid_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [602 609]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('ptrdiff_t __PTRDIFF_TYPE__\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('size_t __SIZE_TYPE__\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('time_t ')
            (word_part.BracedVarSub
              token: <VSub_Name time_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [626 633]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('uid_t ')
            (word_part.BracedVarSub
              token: <VSub_Name uid_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [640 647]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('wchar_t __WCHAR_TYPE__\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('int32_t ')
            (word_part.BracedVarSub
              token: <VSub_Name int32_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [659 666]
            )
            ('\n')
            ('#define ')
            (${ VSub_Name macro_prefix)
            ('uint32_t ')
            (word_part.BracedVarSub
              token: <VSub_Name uint32_t>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('unsigned int ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [673 680]
            )
            ('\n')
          ]
        )
      ]
    )
    (C {(echo)} {(DQ ('#define ') (${ VSub_Name macro_prefix) ('wait_arg_t void'))})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name ssize_t))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ('#define ') (${ VSub_Name macro_prefix) ('ssize_t ') (${ VSub_Name ssize_t))}
            )
          ]
          spids: [16777215 721]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name size_t))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(echo)} {(DQ ('#define ') (${ VSub_Name macro_prefix) ('ssize_t long'))})]
          spids: [737 753]
        )
      ]
      else_action: [
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:tmp spids:[773])
              op: Equal
              rhs: 
                {
                  (DQ 
                    (word_part.CommandSubPart
                      command_list: 
                        (command.CommandList
                          children: [
                            (command.Pipeline
                              children: [
                                (C {(echo)} {(${ VSub_Name size_t)})
                                (C {(${ VSub_Name SED)} {(-e)} {(SQ <'s|unsigned||g'>)} {(-e)} 
                                  {(SQ <'s|  | |g'>)}
                                )
                              ]
                              negated: F
                            )
                          ]
                        )
                      left_token: <Left_Backtick '`'>
                      spids: [775 799]
                    )
                  )
                }
              spids: [773]
            )
          ]
          spids: [773]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$tmp'))} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:tmp spids:[820])
                      op: Equal
                      rhs: {(int)}
                      spids: [820]
                    )
                  ]
                  spids: [820]
                )
              ]
              spids: [16777215 817]
            )
          ]
          else_action: [
            (command.SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('#include <unistd.h>\n') ('\textern ') ($ VSub_DollarName '$tmp') (' read();'))
                }
              ]
              redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(st-dummy.c)})]
            )
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (command.SimpleCommand
                  words: [{(${ VSub_Name CC)} {(-c)} {(st-dummy.c)}]
                  redirects: [
                    (redir.Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(/dev/null)}
                    )
                    (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:tmp spids:[860])
                      op: Equal
                      rhs: {(int)}
                      spids: [860]
                    )
                  ]
                  spids: [860]
                )
              ]
            )
          ]
          spids: [824 864]
        )
        (C {(echo)} 
          {
            (DQ ('#define ') (${ VSub_Name macro_prefix) ('ssize_t ') ($ VSub_DollarName '$tmp') 
              (' /* default */')
            )
          }
        )
      ]
      spids: [766 879]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(st-dummy.c)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(KW_Bang '!') (EOF) (KW_Bang '!')}
          here_end_span_id: 914
          stdin_parts: [
            ('#define X_va_list ')
            (word_part.BracedVarSub
              token: <VSub_Name va_list>
              suffix_op: 
                (suffix_op.StringUnary
                  op_id: VTest_Hyphen
                  arg_word: {('char* ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                )
              spids: [899 906]
            )
            ('\n')
            ('extern long foo(X_va_list ap); /* Check that X_va_list compiles on its own */\n')
            ('#include <stdarg.h>\n')
            ('long foo(X_va_list ap) { return va_arg(ap, long); }\n')
            ('long bar(int i, ...)\n')
            ('{ va_list ap; long j; va_start(ap, i); j = foo(ap); va_end(ap); return j; }\n')
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.SimpleCommand
                  words: [{(${ VSub_Name CC)} {(-c)} {(st-dummy.c)}]
                  redirects: [
                    (redir.Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(/dev/null)}
                    )
                    (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('#define ') (${ VSub_Name macro_prefix) ('va_list ') 
                  (word_part.BracedVarSub
                    token: <VSub_Name va_list>
                    suffix_op: 
                      (suffix_op.StringUnary
                        op_id: VTest_Hyphen
                        arg_word: {('char* ') (Lit_Slash /) ('* default *') (Lit_Slash /)}
                      )
                    spids: [948 955]
                  )
                )
              }
            )
          ]
          spids: [16777215 933]
        )
      ]
      else_action: [
        (C {(echo)} 
          {
            (DQ ('#define ') (${ VSub_Name macro_prefix) ('NEED_STDARG_H\n') ('#define ') 
              (${ VSub_Name macro_prefix) ('va_list va_list')
            )
          }
        )
      ]
      spids: [958 980]
    )
    (C {(echo)} {(DQ ('#define chtype int'))})
    (C {(echo)} {(DQ ('#define box32 box'))})
    (C {(echo)} {(DQ ('#define initscr32 initscr'))})
    (C {(echo)} {(DQ ('#define w32addch waddch'))})
    (C {(echo)} {(DQ ('#define w32insch winsch'))})
    (C {(rm)} {(-f)} {(st-dummy.c)} {(st-dummy.o)} {(TMP)} {(st-dummy.out)})
  ]
)