(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CC)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: (Token id:Id.VSub_Name val:CC span_id:18)
                suffix_op: 
                  (suffix_op.Unary
                    op_id: Id.VTest_Hyphen
                    arg_word: {(DQ ('./xgcc -B') ($ Id.VSub_Number '$1') (/))}
                  )
              )
            }
          spids: [16]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPP)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: (Token id:Id.VSub_Name val:CPP span_id:29)
                suffix_op: 
                  (suffix_op.Unary
                    op_id: Id.VTest_Hyphen
                    arg_word: 
                      {
                        (command_sub
                          left_token: (Token id:Id.Left_Backtick val:'`' span_id:31)
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(echo)} {(${ Id.VSub_Name CC)} {(-E)} 
                                  {(-I) (DQ ($ Id.VSub_Number '$1') (/))}
                                )
                              ]
                            )
                        )
                      }
                  )
              )
            }
          spids: [27]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:SED) op:assign_op.Equal rhs:{(sed)} spids:[50])]
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:69)
          fd: -1
          arg_word: {(st-dummy.c)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:72)
          fd: -1
          here_begin: {(Id.KW_Bang '!') (EOF) (Id.KW_Bang '!')}
          here_end_span_id: 92
          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.Simple
                  words: [{(${ Id.VSub_Name CPP)} {(st-dummy.c)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:102)
                      fd: -1
                      arg_word: {(TMP)}
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:105)
            )
          ]
          action: [(C {(true)})]
          spids: [94 107]
        )
      ]
      else_action: [
        (command.Sentence
          child: 
            (command.Simple
              words: [
                {(echo)}
                {(DQ ('scan-types: could not invoke ') (${ Id.VSub_Name CPP) (' on st-dummy.c'))}
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:124)
                  fd: 1
                  arg_word: {(2)}
                )
              ]
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:127)
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:129)
          arg_word: {(1)}
        )
      ]
    )
    (command.Simple
      words: [
        {(tr)}
        {(SQ (Token id:Id.Lit_Chars val:'\t' span_id:138))}
        {(SQ (Token id:Id.Lit_Chars val:' ' span_id:142))}
      ]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Less val:'<' span_id:145) fd:-1 arg_word:{(TMP)})
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:148)
          fd: -1
          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.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IMPORTED)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:196)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(eval)} 
                                {(SQ (Token id:Id.Lit_Chars val:'echo $' span_id:202)) 
                                  (DQ ($ Id.VSub_DollarName '$TYPE'))
                                }
                              )
                            ]
                          )
                      )
                    }
                  spids: [195]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ (${ Id.VSub_Name IMPORTED))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:224)
                    )
                  ]
                  action: [
                    (C {(eval)} 
                      {(DQ ($ Id.VSub_DollarName '$TYPE') ("='") ($ Id.VSub_DollarName '$IMPORTED'))}
                    )
                  ]
                  spids: [210 226]
                )
              ]
              else_action: [
                (C {(rm)} {(-f)} {(TMP)})
                (command.Simple
                  words: [
                    {(${ Id.VSub_Name SED)}
                    {(-n)}
                    {(-e)}
                    {
                      (DQ ('s|.*typedef  *') (Id.Lit_Other '\\') ('(.*') (Id.Lit_Other '\\') (') X*') 
                        ($ Id.VSub_DollarName '$TYPE') (' *;.*|') (Id.Lit_Other '\\') ('1|w TMP')
                      )
                    }
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Less val:'<' span_id:276)
                      fd: -1
                      arg_word: {(st-dummy.out)}
                    )
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:278)
                      fd: -1
                      arg_word: {(/dev/null)}
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: (C {(Id.Lit_LBracket '[')} {(-s)} {(TMP)} {(Id.Lit_RBracket ']')})
                          terminator: (Token id:Id.Op_Semi val:';' span_id:295)
                        )
                      ]
                      action: [
                        (C {(eval)} 
                          {
                            (DQ ("VALUE='") 
                              (command_sub
                                left_token: (Token id:Id.Left_Backtick val:'`' span_id:308)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Simple
                                        words: [
                                          {(${ Id.VSub_Name SED)}
                                          {(-e)}
                                          {(SQ (Token id:Id.Lit_Chars val:'s| *$||' span_id:318))}
                                          {(-e)}
                                          {(SQ (Token id:Id.Lit_Chars val:'2,$d' span_id:324))}
                                        ]
                                        redirects: [
                                          (redir.Redir
                                            op: (Token id:Id.Redir_Less val:'<' span_id:327)
                                            fd: -1
                                            arg_word: {(TMP)}
                                          )
                                        ]
                                      )
                                    ]
                                  )
                              ) ("'")
                            )
                          }
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {(echo)} {(DQ ($ Id.VSub_DollarName '$VALUE'))})
                                        (command.Simple
                                          words: [{(grep)} {(DQ (' '))}]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:370)
                                              fd: -1
                                              arg_word: {(/dev/null)}
                                            )
                                          ]
                                        )
                                      ]
                                      negated: F
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:373)
                                )
                              ]
                              action: [(C {(true)})]
                              spids: [354 375]
                            )
                          ]
                          else_action: [
                            (C {(rm)} {(-f)} {(TMP)})
                            (command.Simple
                              words: [
                                {(${ Id.VSub_Name SED)}
                                {(-n)}
                                {(-e)}
                                {
                                  (DQ ('s|.*typedef[ \t][ \t]*') (Id.Lit_Other '\\') 
                                    ('(.*[^a-zA-Z0-9_]') (Id.Lit_Other '\\') (')') (${ Id.VSub_Name VALUE) ('[ \t]*;.*|') (Id.Lit_Other '\\') ('1|w TMP')
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_Less val:'<' span_id:412)
                                  fd: -1
                                  arg_word: {(st-dummy.out)}
                                )
                                (redir.Redir
                                  op: (Token id:Id.Redir_Great val:'>' span_id:414)
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Id.Lit_LBracket '[')} {(-s)} {(TMP)} {(Id.Lit_RBracket ']')})
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:427)
                                    )
                                  ]
                                  action: [
                                    (C {(eval)} 
                                      {
                                        (DQ ("VALUE='") 
                                          (command_sub
                                            left_token: 
                                              (Token
                                                id: Id.Left_Backtick
                                                val: '`'
                                                span_id: 436
                                              )
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Simple
                                                    words: [
                                                      {(${ Id.VSub_Name SED)}
                                                      {(-e)}
                                                      {
                                                        (SQ 
                                                          (Token
                                                            id: Id.Lit_Chars
                                                            val: '2,$d'
                                                            span_id: 446
                                                          )
                                                        )
                                                      }
                                                      {(-e)}
                                                      {
                                                        (SQ 
                                                          (Token
                                                            id: Id.Lit_Chars
                                                            val: 's|[ \t]*$||'
                                                            span_id: 452
                                                          )
                                                        )
                                                      }
                                                    ]
                                                    redirects: [
                                                      (redir.Redir
                                                        op: 
                                                          (Token
                                                            id: Id.Redir_Less
                                                            val: '<'
                                                            span_id: 455
                                                          )
                                                        fd: -1
                                                        arg_word: {(TMP)}
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                          ) ("'")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [418 429]
                                )
                              ]
                            )
                          ]
                        )
                        (C {(eval)} 
                          {
                            (DQ ($ Id.VSub_DollarName '$TYPE') ("='") ($ Id.VSub_DollarName '$VALUE') 
                              ("'")
                            )
                          }
                        )
                      ]
                      spids: [286 297]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:488)
          fd: -1
          here_begin: {(Id.KW_Bang '!') (EOF) (Id.KW_Bang '!')}
          here_end_span_id: 691
          stdin_parts: [
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('clock_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:clock_t span_id:499)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('dev_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:dev_t span_id:513)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('fpos_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:fpos_t span_id:527)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('long ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('gid_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:gid_t span_id:541)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('ino_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:ino_t span_id:555)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('mode_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:mode_t span_id:569)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('nlink_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:nlink_t span_id:583)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('off_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:off_t span_id:597)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('long ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('pid_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:pid_t span_id:611)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('ptrdiff_t __PTRDIFF_TYPE__\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('size_t __SIZE_TYPE__\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('time_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:time_t span_id:635)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('uid_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:uid_t span_id:649)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('wchar_t __WCHAR_TYPE__\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('int32_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:int32_t span_id:668)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
            ('#define ')
            (${ Id.VSub_Name macro_prefix)
            ('uint32_t ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:uint32_t span_id:682)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('unsigned int ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\n')
          ]
        )
      ]
    )
    (C {(echo)} {(DQ ('#define ') (${ Id.VSub_Name macro_prefix) ('wait_arg_t void'))})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ (${ Id.VSub_Name ssize_t))} 
                  {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:727)
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('#define ') (${ Id.VSub_Name macro_prefix) ('ssize_t ') (${ Id.VSub_Name ssize_t))
              }
            )
          ]
          spids: [713 729]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ (${ Id.VSub_Name size_t))} {(Id.Lit_RBracket ']')})
              terminator: (Token id:Id.Op_Semi val:';' span_id:759)
            )
          ]
          action: [(C {(echo)} {(DQ ('#define ') (${ Id.VSub_Name macro_prefix) ('ssize_t long'))})]
          spids: [745 761]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:tmp)
              op: assign_op.Equal
              rhs: 
                {
                  (DQ 
                    (command_sub
                      left_token: (Token id:Id.Left_Backtick val:'`' span_id:783)
                      command_list: 
                        (command.CommandList
                          children: [
                            (command.Pipeline
                              children: [
                                (C {(echo)} {(${ Id.VSub_Name size_t)})
                                (C {(${ Id.VSub_Name SED)} {(-e)} 
                                  {(SQ (Token id:Id.Lit_Chars val:'s|unsigned||g' span_id:801))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s|  | |g' span_id:807))}
                                )
                              ]
                              negated: F
                            )
                          ]
                        )
                    )
                  )
                }
              spids: [781]
            )
          ]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$tmp'))} 
                      {(Id.Lit_RBracket ']')}
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:825)
                )
              ]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:tmp)
                      op: assign_op.Equal
                      rhs: {(int)}
                      spids: [830]
                    )
                  ]
                )
              ]
              spids: [813 827]
            )
          ]
          else_action: [
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ('#include <unistd.h>\n') ('\textern ') ($ Id.VSub_DollarName '$tmp') (' read();'))
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:850)
                  fd: -1
                  arg_word: {(st-dummy.c)}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{(${ Id.VSub_Name CC)} {(-c)} {(st-dummy.c)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:862)
                      fd: -1
                      arg_word: {(/dev/null)}
                    )
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:865)
                      fd: 2
                      arg_word: {(1)}
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:tmp)
                      op: assign_op.Equal
                      rhs: {(int)}
                      spids: [870]
                    )
                  ]
                )
              ]
            )
          ]
        )
        (C {(echo)} 
          {
            (DQ ('#define ') (${ Id.VSub_Name macro_prefix) ('ssize_t ') ($ Id.VSub_DollarName '$tmp') 
              (' /* default */')
            )
          }
        )
      ]
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:900)
          fd: -1
          arg_word: {(st-dummy.c)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:903)
          fd: -1
          here_begin: {(Id.KW_Bang '!') (EOF) (Id.KW_Bang '!')}
          here_end_span_id: 924
          stdin_parts: [
            ('#define X_va_list ')
            (braced_var_sub
              token: (Token id:Id.VSub_Name val:va_list span_id:910)
              suffix_op: 
                (suffix_op.Unary
                  op_id: Id.VTest_Hyphen
                  arg_word: {('char* ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                )
            )
            ('\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.Simple
                  words: [{(${ Id.VSub_Name CC)} {(-c)} {(st-dummy.c)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:935)
                      fd: -1
                      arg_word: {(/dev/null)}
                    )
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:938)
                      fd: 2
                      arg_word: {(1)}
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:941)
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('#define ') (${ Id.VSub_Name macro_prefix) ('va_list ') 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:va_list span_id:959)
                    suffix_op: 
                      (suffix_op.Unary
                        op_id: Id.VTest_Hyphen
                        arg_word: {('char* ') (Id.Lit_Slash /) ('* default *') (Id.Lit_Slash /)}
                      )
                  )
                )
              }
            )
          ]
          spids: [925 943]
        )
      ]
      else_action: [
        (C {(echo)} 
          {
            (DQ ('#define ') (${ Id.VSub_Name macro_prefix) ('NEED_STDARG_H\n') ('#define ') 
              (${ Id.VSub_Name macro_prefix) ('va_list va_list')
            )
          }
        )
      ]
    )
    (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)})
  ]
)