(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PATH)
          op: Equal
          rhs: {(Lit_Other ':') (/bin) (Lit_Other ':') (/usr/bin)}
        )
      ]
    )
    (C {(export)} {(PATH)})
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:CC) op:Equal rhs:{(cc)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ARCH)
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: (command.CommandList children:[(C {(arch)})])
                left_token: <Left_Backtick '`'>
              )
            }
        )
      ]
    )
    (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: 72
          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) op:Equal rhs:{(file)})]
    )
    (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: 96
          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: 126
          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: 143
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Compilation)} {(failed)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(No)} {(compiler)} {(output)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(cc)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>
            )
          ]
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(on)} {(chmod)} {(test)} {(3)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 385
          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: 403
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(cut)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(dd)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(df)} {(Test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(du)} {(Test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 711
                  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')
                  ]
                )
              ]
            )
          ]
        )
      ]
      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: 728
              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')
              ]
            )
          ]
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(od)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 820
                  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')
                  ]
                )
              ]
            )
          ]
        )
      ]
      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: 837
              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')
              ]
            )
          ]
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(od)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 891
          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: 905
          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: 918
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(paste)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 984
          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: 1001
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(prep)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(3)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(printenv)} {(test)} {(4)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 '`'>
        )
      }
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pwd)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pwd)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 1303
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(strings)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 1360
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(sum)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(tee)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)]
          action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(true)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 1497
          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: 1511
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(uniq)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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: 1572
          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: 1591
          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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pipeline)} {(test)} {(1)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (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 ';'>)]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {(echo)} {(Error)} {(KW_In in)} {(pipeline)} {(test)} {(2)})
          terminator: <Op_Semi ';'>
        )
      ]
    )
    (C {(cd)} {(..)})
    (C {(rm)} {(-rf)} {(DIR_SH2)})
    (C {(echo)} {(ok)})
  ]
)