(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PATH spids:[8])
          op: Equal
          rhs: {(Lit_Other ':') (/bin) (Lit_Other ':') (/usr/bin)}
          spids: [8]
        )
      ]
      spids: [8]
    )
    (C {(export)} {(PATH)})
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:CC spids:[22]) op:Equal rhs:{(cc)} spids:[22])]
      spids: [22]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ARCH spids:[26])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: (command.CommandList children:[(C {(arch)})])
                left_token: <Left_Backtick '`'>
                spids: [27 29]
              )
            }
          spids: [26]
        )
      ]
      spids: [26]
    )
    (C {(echo)} {(-n)} {(DQ ('Shell test  2 '))})
    (C {(rm)} {(-rf)} {(DIR_SH2)})
    (C {(mkdir)} {(DIR_SH2)})
    (C {(cd)} {(DIR_SH2)})
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(file)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 70
          stdin_parts: [
            ('The time has come the walrus said to talk of many things\n')
            ('Of shoes and ships and sealing wax of cabbages and kings\n')
            ('Of why the sea is boiling hot and whether pigs have wings\n')
          ]
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:f spids:[71]) op:Equal rhs:{(file)} spids:[71])]
      spids: [71]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(makefile)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 94
          stdin_parts: [('all:\tx.c\n') ('\t@') ($ VSub_DollarName '$CC') (' x.c >/dev/null 2>&1\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x.c)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 124
          stdin_parts: [
            ('#include <stdio.h>\n')
            ('char s[] = {')
            (Right_DoubleQuote '"')
            ('MS-DOS: Just say no')
            (Right_DoubleQuote '"')
            ('};\t/* used by strings later */\n')
            ('main() \n')
            ('{\n')
            ('  int i; \n')
            ('  for (i = 15; i < 18; i++) printf(')
            (Right_DoubleQuote '"')
            ('%d')
            (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>)
            (n)
            (Right_DoubleQuote '"')
            (',i*i);\n')
            ('}\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 141
          stdin_parts: [('225\n') ('256\n') ('289\n')]
        )
      ]
    )
    (C {(make)})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-f)} {(a.out)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 154]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Compilation)} {(failed)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [160 169]
    )
    (command.SimpleCommand
      words: [{(a.out)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-f)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 185]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(No)} {(compiler)} {(output)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [191 202]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 215]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(cc)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [221 236]
    )
    (command.SimpleCommand
      words: [{(echo)} {(Hi)} {(there)} {(folks)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 262]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [268 283]
    )
    (C {(chmod)} {(377)} {(x)})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(-w)} {(/)})
                    (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(2)})
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [16777215 300]
        )
      ]
      spids: [16777215 323]
    )
    (C {(chmod)} {(700)} {(x)})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 340]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(3)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [346 361]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 383
          stdin_parts: [
            ('1 white bunny\n')
            ('2 gray  rabbits\n')
            ('3 brown hares\n')
            ('4 black conies\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 401
          stdin_parts: [('white\n') ('gray \n') ('brown\n') ('black\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cut)} {(-c)} {(3-7)} {(x)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(y)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(y)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 428]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(cut)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [434 449]
    )
    (command.SimpleCommand
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') ($ VSub_DollarName '$f')}
        {(Lit_VarLike 'of=') (x)}
        {(Lit_VarLike 'bs=') (12)}
        {(Lit_VarLike 'count=') (1)}
      ]
      redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
    )
    (command.SimpleCommand
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') ($ VSub_DollarName '$f')}
        {(Lit_VarLike 'of=') (y)}
        {(Lit_VarLike 'bs=') (6)}
        {(Lit_VarLike 'count=') (4)}
        {(Lit_VarLike 'skip=') (2)}
      ]
      redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
    )
    (command.SimpleCommand
      words: [{(cat)} {(x)} {(y)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(z)})]
    )
    (command.SimpleCommand
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') ($ VSub_DollarName '$f')}
        {(Lit_VarLike 'of=') (answer)}
        {(Lit_VarLike 'bs=') (9)}
        {(Lit_VarLike 'count=') (4)}
      ]
      redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(z)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 541]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(dd)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [547 562]
    )
    (C {(rm)} {(Lit_Other '?')})
    (command.SimpleCommand
      words: [{(df)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 586]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(df)} {(Test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [592 607]
    )
    (C {(rm)} {(Lit_Other '?')})
    (command.SimpleCommand
      words: [{(du)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 631]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(du)} {(Test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [637 652]
    )
    (command.Pipeline
      children: [
        (C {(head)} {(-1)} {($ VSub_DollarName '$f')})
        (command.SimpleCommand
          words: [{(od)}]
          redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {($ VSub_DollarName '$ARCH')} {(Lit_Other '=')} {(i86)} {(-o)} 
              {($ VSub_DollarName '$ARCH')} {(Lit_Other '=')} {(i386)} {(Lit_Other ']')}
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
                (redir.HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(END)}
                  here_end_span_id: 709
                  stdin_parts: [
                    ('0000000 064124 020145 064564 062555 064040 071541 061440 066557\n')
                    ('0000020 020145 064164 020145 060567 071154 071565 071440 064541\n')
                    ('0000040 020144 067564 072040 066141 020153 063157 066440 067141\n')
                    ('0000060 020171 064164 067151 071547 000012\n')
                    ('0000071\n')
                  ]
                )
              ]
            )
          ]
          spids: [16777215 693]
        )
      ]
      else_action: [
        (command.SimpleCommand
          words: [{(cat)}]
          redirects: [
            (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
            (redir.HereDoc
              op: <Redir_DLess '<<'>
              fd: 16777215
              here_begin: {(END)}
              here_end_span_id: 726
              stdin_parts: [
                ('0000000 052150 062440 072151 066545 020150 060563 020143 067555\n')
                ('0000020 062440 072150 062440 073541 066162 072563 020163 060551\n')
                ('0000040 062040 072157 020164 060554 065440 067546 020155 060556\n')
                ('0000060 074440 072150 064556 063563 005000\n')
                ('0000071\n')
              ]
            )
          ]
        )
      ]
      spids: [710 727]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 741]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(od)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [747 762]
    )
    (command.Pipeline
      children: [
        (C {(head)} {(-1)} {($ VSub_DollarName '$f')})
        (command.SimpleCommand
          words: [{(od)} {(-d)}]
          redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {($ VSub_DollarName '$ARCH')} {(Lit_Other '=')} {(i86)} {(-o)} 
              {($ VSub_DollarName '$ARCH')} {(Lit_Other '=')} {(i386)} {(Lit_Other ']')}
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
                (redir.HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(END)}
                  here_end_span_id: 818
                  stdin_parts: [
                    ('0000000 26708 08293 26996 25965 26656 29537 25376 28015\n')
                    ('0000020 08293 26740 08293 24951 29292 29557 29472 26977\n')
                    ('0000040 08292 28532 29728 27745 08299 26223 27936 28257\n')
                    ('0000060 08313 26740 28265 29543 00010\n')
                    ('0000071\n')
                  ]
                )
              ]
            )
          ]
          spids: [16777215 802]
        )
      ]
      else_action: [
        (command.SimpleCommand
          words: [{(cat)}]
          redirects: [
            (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
            (redir.HereDoc
              op: <Redir_DLess '<<'>
              fd: 16777215
              here_begin: {(END)}
              here_end_span_id: 835
              stdin_parts: [
                ('0000000 21608 25888 29801 28005 08296 24947 08291 28525\n')
                ('0000020 25888 29800 25888 30561 27762 30067 08307 24937\n')
                ('0000040 25632 29807 08308 24940 27424 28518 08301 24942\n')
                ('0000060 31008 29800 26990 26483 02560\n')
                ('0000071\n')
              ]
            )
          ]
        )
      ]
      spids: [819 836]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 850]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(od)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [856 871]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 889
          stdin_parts: [('red\n') ('green\n') ('blue\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(y)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 903
          stdin_parts: [('rood\n') ('groen\n') ('blauw\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 916
          stdin_parts: [('red\trood\n') ('green\tgroen\n') ('blue\tblauw\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(paste)} {(x)} {(y)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(z)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(z)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 938]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(paste)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [944 959]
    )
    (command.SimpleCommand
      words: [{(echo)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 982
          stdin_parts: [
            (Right_DoubleQuote '"')
            ('Hi,')
            (Right_DoubleQuote '"')
            (' said Carol, laughing, ')
            (Right_DoubleQuote '"')
            ("How's life?")
            (Right_DoubleQuote '"')
            ('\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(echo)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 999
          stdin_parts: [('hi\n') ('said\n') ('carol\n') ('laughing\n') ("how's\n") ('life\n')]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1012]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(prep)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1018 1033]
    )
    (command.SimpleCommand
      words: [{(printenv)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.SimpleCommand
                  words: [{(grep)} {(HOME)} {(x)}]
                  redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1056]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1062 1077]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.SimpleCommand
                  words: [{(grep)} {(PATH)} {(x)}]
                  redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1091]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1097 1112]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.SimpleCommand
                  words: [{(grep)} {(SHELL)} {(x)}]
                  redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1126]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(3)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1132 1147]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.SimpleCommand
                  words: [{(grep)} {(USER)} {(x)}]
                  redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1161]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(4)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1167 1182]
    )
    (command.SimpleCommand
      words: [{(pwd)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(Pwd_file)})]
    )
    (C {(cd)} 
      {
        (word_part.CommandSubPart
          command_list: (command.CommandList children:[(C {(pwd)})])
          left_token: <Left_Backtick '`'>
          spids: [1195 1197]
        )
      }
    )
    (command.SimpleCommand
      words: [{(pwd)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(test)} {(-s)} {(Pwd_file)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1213]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pwd)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1219 1234]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(cmp)} {(-s)} {(Pwd_file)} {(x)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1247]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pwd)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1253 1268]
    )
    (command.Pipeline
      children: [
        (C {(strings)} {(a.out)})
        (command.SimpleCommand
          words: [{(grep)} {(DQ (MS-DOS))}]
          redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
        )
      ]
      negated: F
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 1299
          stdin_parts: [('MS-DOS: Just say no\n')]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1312]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(strings)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1318 1333]
    )
    (command.SimpleCommand
      words: [{(sum)} {($ VSub_DollarName '$f')}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 1356
          stdin_parts: [('29904     1\n')]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1369]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(sum)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1375 1390]
    )
    (command.Pipeline
      children: [
        (C {(cat)} {($ VSub_DollarName '$f')})
        (command.SimpleCommand
          words: [{(tee)} {(x)}]
          redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(cmp)} {(-s)} {(x)} {($ VSub_DollarName '$f')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1420]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(tee)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1426 1441]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1453]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(true)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1459 1474]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 1493
          stdin_parts: [('100\n') ('200\n') ('200\n') ('300\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 1507
          stdin_parts: [('100\n') ('200\n') ('300\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(uniq)}]
      redirects: [
        (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(x)})
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(y)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(y)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1528]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(uniq)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1534 1549]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 1568
          stdin_parts: [
            ('the big black dog\n')
            ('the little white cat\n')
            ('the big white sheep\n')
            ('the little black cat\n')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(answer)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(END)}
          here_end_span_id: 1587
          stdin_parts: [
            ('   1 dog\n')
            ('   1 sheep\n')
            ('   2 big\n')
            ('   2 black\n')
            ('   2 cat\n')
            ('   2 little\n')
            ('   2 white\n')
            ('   4 the\n')
          ]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(prep)} {(x)})
        (C {(sort)})
        (command.SimpleCommand
          words: [{(uniq)} {(-c)}]
          redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(y1)})]
        )
      ]
      negated: F
    )
    (command.SimpleCommand
      words: [{(sort)} {(Lit_Other '+') (1)}]
      redirects: [
        (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(y1)})
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(y)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(y)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1628]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pipeline)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1634 1649]
    )
    (command.Pipeline
      children: [
        (C {(cat)} {($ VSub_DollarName '$f')} {($ VSub_DollarName '$f')} {($ VSub_DollarName '$f')})
        (C {(sort)})
        (command.SimpleCommand
          words: [{(uniq)}]
          redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(x)})]
        )
      ]
      negated: F
    )
    (command.SimpleCommand
      words: [{(sort)}]
      redirects: [
        (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_DollarName '$f')})
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(y)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(cmp)} {(-s)} {(x)} {(y)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [16777215 1690]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pipeline)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1696 1711]
    )
    (C {(cd)} {(..)})
    (C {(rm)} {(-rf)} {(DIR_SH2)})
    (C {(echo)} {(ok)})
  ]
)