(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: {(Lit_Other ':') (/bin) (Lit_Other ':') (/usr/bin)}
          spids: [8]
        )
      ]
      spids: [8]
    )
    (C {(export)} {(PATH)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CC) op:Equal rhs:{(cc)} spids:[22])]
      spids: [22]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ARCH)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (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)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(file)} spids:[60])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('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')
              )
            }
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [63]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:f) op:Equal rhs:{(file)} spids:[69])]
      spids: [69]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(makefile)} spids:[78])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('all:\tx.c\n') ('\t@') ($ VSub_Name '$CC') (' x.c >/dev/null 2>&1\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [81]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(x.c)} spids:[93])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('#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') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n) 
                (Right_DoubleQuote '"') (',i*i);\n') ('}\n')
              )
            }
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [96]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[122])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('225\n') ('256\n') ('289\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [125]
        )
      ]
    )
    (C {(make)})
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-f)} {(a.out)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 146]
        )
      ]
      else_action: [(Sentence child:(C {(echo)} {(Compilation)} {(failed)}) terminator:<Op_Semi ';'>)]
      spids: [152 161]
    )
    (SimpleCommand
      words: [{(a.out)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[165])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-f)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 177]
        )
      ]
      else_action: [
        (Sentence child:(C {(echo)} {(No)} {(compiler)} {(output)}) terminator:<Op_Semi ';'>)
      ]
      spids: [183 194]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 207]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(cc)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [213 228]
    )
    (SimpleCommand
      words: [{(echo)} {(Hi)} {(there)} {(folks)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[242])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 254]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [260 275]
    )
    (C {(chmod)} {(377)} {(x)})
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [
            (Sentence
              child: 
                (AndOr
                  children: [
                    (C {(test)} {(-w)} {(/)})
                    (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(2)})
                  ]
                  op_id: Op_DPipe
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [-1 292]
        )
      ]
      spids: [-1 315]
    )
    (C {(chmod)} {(700)} {(x)})
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 332]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(3)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [338 353]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[361])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {(DQ ('1 white bunny\n') ('2 gray  rabbits\n') ('3 brown hares\n') ('4 black conies\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [364]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[377])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('white\n') ('gray \n') ('brown\n') ('black\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [380]
        )
      ]
    )
    (SimpleCommand
      words: [{(cut)} {(-c)} {(3-7)} {(x)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(y)} spids:[399])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(y)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 416]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(cut)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [422 437]
    )
    (SimpleCommand
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') ($ VSub_Name '$f')}
        {(Lit_VarLike 'of=') (x)}
        {(Lit_VarLike 'bs=') (12)}
        {(Lit_VarLike 'count=') (1)}
      ]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[457])]
    )
    (SimpleCommand
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') ($ VSub_Name '$f')}
        {(Lit_VarLike 'of=') (y)}
        {(Lit_VarLike 'bs=') (6)}
        {(Lit_VarLike 'count=') (4)}
        {(Lit_VarLike 'skip=') (2)}
      ]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[480])]
    )
    (SimpleCommand
      words: [{(cat)} {(x)} {(y)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(z)} spids:[492])]
    )
    (SimpleCommand
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') ($ VSub_Name '$f')}
        {(Lit_VarLike 'of=') (answer)}
        {(Lit_VarLike 'bs=') (9)}
        {(Lit_VarLike 'count=') (4)}
      ]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[512])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(z)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 529]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(dd)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [535 550]
    )
    (C {(rm)} {(Lit_Other '?')})
    (SimpleCommand
      words: [{(df)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[562])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 574]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(df)} {(Test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [580 595]
    )
    (C {(rm)} {(Lit_Other '?')})
    (SimpleCommand
      words: [{(du)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[607])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-r)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 619]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(du)} {(Test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [625 640]
    )
    (Pipeline
      children: [
        (C {(head)} {(-1)} {($ VSub_Name '$f')})
        (SimpleCommand
          words: [{(od)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[655])]
        )
      ]
      negated: False
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {($ VSub_Name '$ARCH')} {(Lit_Other '=')} {(i86)} {(-o)} 
              {($ VSub_Name '$ARCH')} {(Lit_Other '=')} {(i386)} {(Lit_Other ']')}
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[685])
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ('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')
                      )
                    }
                  do_expansion: True
                  here_end: END
                  was_filled: True
                  spids: [688]
                )
              ]
            )
          ]
          spids: [-1 681]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[700])
            (HereDoc
              op_id: Redir_DLess
              fd: -1
              body: 
                {
                  (DQ ('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')
                  )
                }
              do_expansion: True
              here_end: END
              was_filled: True
              spids: [703]
            )
          ]
        )
      ]
      spids: [696 711]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 725]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(od)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [731 746]
    )
    (Pipeline
      children: [
        (C {(head)} {(-1)} {($ VSub_Name '$f')})
        (SimpleCommand
          words: [{(od)} {(-d)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[760])]
        )
      ]
      negated: False
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {($ VSub_Name '$ARCH')} {(Lit_Other '=')} {(i86)} {(-o)} 
              {($ VSub_Name '$ARCH')} {(Lit_Other '=')} {(i386)} {(Lit_Other ']')}
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[790])
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ('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')
                      )
                    }
                  do_expansion: True
                  here_end: END
                  was_filled: True
                  spids: [793]
                )
              ]
            )
          ]
          spids: [-1 786]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[805])
            (HereDoc
              op_id: Redir_DLess
              fd: -1
              body: 
                {
                  (DQ ('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')
                  )
                }
              do_expansion: True
              here_end: END
              was_filled: True
              spids: [808]
            )
          ]
        )
      ]
      spids: [801 816]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 830]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(od)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [836 851]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[859])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('red\n') ('green\n') ('blue\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [862]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(y)} spids:[871])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('rood\n') ('groen\n') ('blauw\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [874]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[882])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('red\trood\n') ('green\tgroen\n') ('blue\tblauw\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [885]
        )
      ]
    )
    (SimpleCommand
      words: [{(paste)} {(x)} {(y)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(z)} spids:[898])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(z)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 912]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(paste)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [918 933]
    )
    (SimpleCommand
      words: [{(echo)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[941])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ (Right_DoubleQuote '"') ('Hi,') (Right_DoubleQuote '"') (' said Carol, laughing, ') 
                (Right_DoubleQuote '"') ("How's life?") (Right_DoubleQuote '"') ('\n')
              )
            }
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [944]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[958])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('hi\n') ('said\n') ('carol\n') ('laughing\n') ("how's\n") ('life\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [961]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 982]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(prep)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [988 1003]
    )
    (SimpleCommand
      words: [{(printenv)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[1011])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(grep)} {(HOME)} {(x)}]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1022])]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1026]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1032 1047]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(grep)} {(PATH)} {(x)}]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1057])]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1061]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1067 1082]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(grep)} {(SHELL)} {(x)}]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1092])]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1096]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(3)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1102 1117]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(grep)} {(USER)} {(x)}]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1127])]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1131]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(4)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1137 1152]
    )
    (SimpleCommand
      words: [{(pwd)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(Pwd_file)} spids:[1160])]
    )
    (C {(cd)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(pwd)})])
          left_token: <Left_Backtick '`'>
          spids: [1165 1167]
        )
      }
    )
    (SimpleCommand
      words: [{(pwd)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[1171])]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-s)} {(Pwd_file)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1183]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pwd)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1189 1204]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(Pwd_file)} {(x)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1217]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pwd)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1223 1238]
    )
    (Pipeline
      children: [
        (C {(strings)} {(a.out)})
        (SimpleCommand
          words: [{(grep)} {(DQ (MS-DOS))}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[1256])]
        )
      ]
      negated: False
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[1261])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('MS-DOS: Just say no\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [1264]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1280]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(strings)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1286 1301]
    )
    (SimpleCommand
      words: [{(sum)} {($ VSub_Name '$f')}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[1311])]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[1316])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('29904     1\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [1319]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(x)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1335]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(sum)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1341 1356]
    )
    (Pipeline
      children: [
        (C {(cat)} {($ VSub_Name '$f')})
        (SimpleCommand
          words: [{(tee)} {(x)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[1372])]
        )
      ]
      negated: False
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(cmp)} {(-s)} {(x)} {($ VSub_Name '$f')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1386]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(tee)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1392 1407]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1419]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(true)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1425 1440]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[1448])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('100\n') ('200\n') ('200\n') ('300\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [1451]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[1461])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('100\n') ('200\n') ('300\n'))}
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [1464]
        )
      ]
    )
    (SimpleCommand
      words: [{(uniq)}]
      redirects: [
        (Redir op_id:Redir_Less fd:-1 arg_word:{(x)} spids:[1473])
        (Redir op_id:Redir_Great fd:-1 arg_word:{(y)} spids:[1476])
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(y)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1490]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(uniq)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1496 1511]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[1519])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('the big black dog\n') ('the little white cat\n') ('the big white sheep\n') 
                ('the little black cat\n')
              )
            }
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [1522]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(answer)} spids:[1532])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('   1 dog\n') ('   1 sheep\n') ('   2 big\n') ('   2 black\n') ('   2 cat\n') 
                ('   2 little\n') ('   2 white\n') ('   4 the\n')
              )
            }
          do_expansion: True
          here_end: END
          was_filled: True
          spids: [1535]
        )
      ]
    )
    (Pipeline
      children: [
        (C {(prep)} {(x)})
        (C {(sort)})
        (SimpleCommand
          words: [{(uniq)} {(-c)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(y1)} spids:[1561])]
        )
      ]
      negated: False
    )
    (SimpleCommand
      words: [{(sort)} {(Lit_Other '+') (1)}]
      redirects: [
        (Redir op_id:Redir_Less fd:-1 arg_word:{(y1)} spids:[1569])
        (Redir op_id:Redir_Great fd:-1 arg_word:{(y)} spids:[1572])
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(y)} {(answer)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1586]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pipeline)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1592 1607]
    )
    (Pipeline
      children: [
        (C {(cat)} {($ VSub_Name '$f')} {($ VSub_Name '$f')} {($ VSub_Name '$f')})
        (C {(sort)})
        (SimpleCommand
          words: [{(uniq)}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(x)} spids:[1626])]
        )
      ]
      negated: False
    )
    (SimpleCommand
      words: [{(sort)}]
      redirects: [
        (Redir op_id:Redir_Less fd:-1 arg_word:{($ VSub_Name '$f')} spids:[1631])
        (Redir op_id:Redir_Great fd:-1 arg_word:{(y)} spids:[1634])
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(cmp)} {(-s)} {(x)} {(y)}) terminator:<Op_Semi ';'>)]
          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
          spids: [-1 1648]
        )
      ]
      else_action: [
        (Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pipeline)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
      spids: [1654 1669]
    )
    (C {(cd)} {(..)})
    (C {(rm)} {(-rf)} {(DIR_SH2)})
    (C {(echo)} {(ok)})
  ]
)