(CommandList
  children: [
    (C {(Lit_Other ":")} {(generate)} {(sig)} {(features)})
    (Case
      to_match: {($ VSub_Pound "$#")}
      arms: [
        (case_arm pat_list:[{(0)}] spids:[777880-1])
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [(C {(eval)} {($ VSub_Number "$1")}) (C {(shift)})]
          spids: [82 83 93 -1]
        )
      ]
      spids: [71 75 95]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ("#include <signal.h>\n") ("int xxx;"))}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$tmp") (.c)} spids:[104])]
    )
    (SimpleCommand
      words: [{($ VSub_Name "$cc")} {(-c)} {($ VSub_Name "$tmp") (.c)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[116])
        (Redir op_id:Redir_Great fd:2 arg_word:{($ VSub_Name "$tmp") (.e)} spids:[119])
      ]
    )
    (C {(echo)} 
      {
        (DQ ("#pragma prototyped\n") ("#define sig_info\t_sig_info_\n") ("\n") 
          ("#if defined(__STDPP__directive) && defined(__STDPP__hide)\n") ("__STDPP__directive pragma pp:hide kill killpg\n") ("#else\n") ("#define kill\t______kill\n") 
          ("#define killpg\t______killpg\n") ("#endif\n") ("#include <signal.h>\n") ("#if defined(__STDPP__directive) && defined(__STDPP__hide)\n") 
          ("__STDPP__directive pragma pp:nohide kill killpg\n") ("#else\n") ("#undef\tkill\n") ("#undef\tkillpg\n") ("#endif\n") ("#ifndef sigmask\n") 
          ("#define sigmask(s)\t(1<<((s)-1))\n") ("#endif")
        )
      }
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ("#include <signal.h>\n") ("#ifdef TYPE\n") 
            ("#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)\n") ("typedef TYPE (*Sig_handler_t)(ARG);\n") ("#else\n") ("typedef TYPE (*Sig_handler_t)();\n") 
            ("#endif\n") ("#endif\n") ("Sig_handler_t f()\n") ("{\n") ("\tSig_handler_t\thandler;\n") 
            ("\thandler = signal(1, SIG_IGN);\n") ("\treturn(handler);\n") ("}")
          )
        }
      ]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$tmp") (.c)} spids:[166])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (SimpleCommand
              words: [{($ VSub_Name "$cc")} {(-c)} {($ VSub_Name "$tmp") (.c)}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[180])]
            )
          ]
          action: [(C {(Lit_Other ":")})]
          spids: [-1 183]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:e)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(wc)} {(-l)} {($ VSub_Name "$tmp") (.e)})]
                      )
                    left_token: <Left_Backtick "`">
                    spids: [190 197]
                  )
                }
              spids: [189]
            )
          ]
          spids: [189]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair lhs:(LhsName name:i1) op:Equal rhs:{(SQ )} spids:[200])
            (assign_pair lhs:(LhsName name:j1) op:Equal rhs:{(SQ )} spids:[202])
          ]
          spids: [200]
        )
        (ForEach
          iter_name: i
          iter_words: [{(void)} {(int)}]
          do_arg_iter: False
          body: 
            (DoGroup
              children: [
                (ForEach
                  iter_name: j
                  iter_words: [{(int) (Lit_Comma ",") (...)} {(...)} {(int)}]
                  do_arg_iter: False
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          children: [
                            (SimpleCommand
                              words: [
                                {($ VSub_Name "$cc")}
                                {(-c)}
                                {(-DTYPE) (Lit_Other "=") ($ VSub_Name "$i")}
                                {(-DARG) (Lit_Other "=") ($ VSub_Name "$j")}
                                {($ VSub_Name "$tmp") (.c)}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                  spids: [250]
                                )
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {($ VSub_Name "$tmp") (.e)}
                                  spids: [253]
                                )
                              ]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          op_id: Op_DPipe
                        )
                        (Case
                          to_match: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(wc)} {(-l)} {($ VSub_Name "$tmp") (.e)})]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [264 271]
                              )
                            }
                          arms: [
                            (case_arm
                              pat_list: [{($ VSub_Name "$e")}]
                              action: [
                                (Sentence
                                  child: 
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:i1)
                                          op: Equal
                                          rhs: {(SQ )}
                                          spids: [279]
                                        )
                                        (assign_pair
                                          lhs: (LhsName name:j1)
                                          op: Equal
                                          rhs: {(SQ )}
                                          spids: [281]
                                        )
                                      ]
                                      spids: [279]
                                    )
                                  terminator: <Op_Semi ";">
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                  arg_word: {(2)}
                                )
                              ]
                              spids: [276 277 288 -1]
                            )
                          ]
                          spids: [262 273 291]
                        )
                        (Case
                          to_match: {($ VSub_Name "$i1")}
                          arms: [
                            (case_arm
                              pat_list: [{(DQ )}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:i1)
                                      op: Equal
                                      rhs: {($ VSub_Name "$i")}
                                      spids: [305]
                                    )
                                    (assign_pair
                                      lhs: (LhsName name:j1)
                                      op: Equal
                                      rhs: {($ VSub_Name "$j")}
                                      spids: [308]
                                    )
                                  ]
                                  spids: [305]
                                )
                              ]
                              spids: [-1 303 311 -1]
                            )
                          ]
                          spids: [294 298 314]
                        )
                      ]
                      spids: [233 317]
                    )
                  spids: [223 -1]
                )
              ]
              spids: [216 320]
            )
          spids: [210 -1]
        )
        (Case
          to_match: {($ VSub_Name "$i1")}
          arms: [
            (case_arm
              pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:i)
                      op: Equal
                      rhs: {($ VSub_Name "$i1")}
                      spids: [334]
                    )
                    (assign_pair
                      lhs: (LhsName name:j)
                      op: Equal
                      rhs: {($ VSub_Name "$j1")}
                      spids: [337]
                    )
                  ]
                  spids: [334]
                )
              ]
              spids: [330 332 340 -1]
            )
          ]
          spids: [323 327 343]
        )
        (C {(echo)} 
          {(DQ ("typedef ") ($ VSub_Name "$i") (" (*Sig_handler_t)(") ($ VSub_Name "$j") (");"))}
        )
      ]
      spids: [187 356]
    )
    (C {(echo)} 
      {
        (SQ <"\n"> <"\n"> <"#define Handler_t\t\tSig_handler_t\n"> <"\n"> 
          <"#define SIG_REG_PENDING\t\t(-1)\n"> <"#define SIG_REG_POP\t\t0\n"> <"#define SIG_REG_EXEC\t\t00001\n"> <"#define SIG_REG_PROC\t\t00002\n"> 
          <"#define SIG_REG_TERM\t\t00004\n"> <"#define SIG_REG_ALL\t\t00777\n"> <"#define SIG_REG_SET\t\t01000\n"> <"\n"> <"typedef struct\n"> <"{\n"> 
          <"\tchar**\t\tname;\n"> <"\tchar**\t\ttext;\n"> <"\tint\t\tsigmax;\n"> <"} Sig_info_t;\n"> <"\n"> 
          <"extern int\t\tkill(pid_t, int);\n"> <"extern int\t\tkillpg(pid_t, int);\n"> <"\n"> <"#if _BLD_ast && defined(__EXPORT__)\n"> 
          <"#define extern\t\textern __EXPORT__\n"> <"#endif\n"> <"#if !_BLD_ast && defined(__IMPORT__)\n"> <"#define extern\t\textern __IMPORT__\n"> 
          <"#endif\n"> <"\n"> <"extern Sig_info_t\tsig_info;\n"> <"\n"> <"#undef\textern\n"> <"\n"> 
          <"#if _lib_sigflag && _npt_sigflag\n"> <"extern int\t\tsigflag(int, int, int);\n"> <"#endif\n"> <"\n"> 
          <"#if _BLD_ast && defined(__EXPORT__)\n"> <"#define extern\t\t__EXPORT__\n"> <"#endif\n"> <"\n"> <"#if !_lib_sigflag\n"> 
          <"extern int\t\tsigflag(int, int, int);\n"> <"#endif\n"> <"extern int\t\tsigcritical(int);\n"> <"extern int\t\tsigunblock(int);\n"> <"\n"> 
          <"#undef\textern">
        )
      }
    )
  ]
)