(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: {<Id.Lit_Other ':'> </bin> <Id.Lit_Other ':'> </usr/bin>}
          spids: [8]
        )
      ]
    )
    (C {<export>} {<PATH>})
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:CC) op:assign_op.Equal rhs:{<cc>} spids:[22])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ARCH)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: (command.CommandList children:[(C {<arch>})])
              )
            }
          spids: [26]
        )
      ]
    )
    (C {<echo>} {<-n>} {(DQ <'Shell test  2 '>)})
    (C {<rm>} {<-rf>} {<DIR_SH2>})
    (C {<mkdir>} {<DIR_SH2>})
    (C {<cd>} {<DIR_SH2>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<file>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:f) op:assign_op.Equal rhs:{<file>} spids:[73])]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<makefile>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 96
          stdin_parts: [<'all:\tx.c\n'> <'\t@'> ($ Id.VSub_DollarName '$CC') <' x.c >/dev/null 2>&1\n'>]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x.c>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 126
          stdin_parts: [
            <'#include <stdio.h>\n'>
            <'char s[] = {'>
            <Id.Right_DoubleQuote '"'>
            <'MS-DOS: Just say no'>
            <Id.Right_DoubleQuote '"'>
            <'};\t/* used by strings later */\n'>
            <'main() \n'>
            <'{\n'>
            <'  int i; \n'>
            <'  for (i = 15; i < 18; i++) printf('>
            <Id.Right_DoubleQuote '"'>
            <'%d'>
            (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
            <n>
            <Id.Right_DoubleQuote '"'>
            <',i*i);\n'>
            <'}\n'>
          ]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [147 156]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Compilation>} {<failed>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<a.out>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-f>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [178 187]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<No>} {<compiler>} {<output>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<x>} {<answer>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [206 217]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<cc>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<echo>} {<Hi>} {<there>} {<folks>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-r>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [255 264]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<chmod>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<chmod>} {<377>} {<x>})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-r>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<test>} {<-w>} {</>})
                    (C {<echo>} {<Error>} {<on>} {<chmod>} {<test>} {<2>})
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [293 302]
        )
      ]
    )
    (C {<chmod>} {<700>} {<x>})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-r>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [333 342]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<chmod>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 403
          stdin_parts: [<'white\n'> <'gray \n'> <'brown\n'> <'black\n'>]
        )
      ]
    )
    (command.Simple
      words: [{<cut>} {<-c>} {<3-7>} {<x>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<y>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<y>} {<answer>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [419 430]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<cut>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [
        {<dd>}
        {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName '$f')}
        {<Id.Lit_VarLike 'of='> <x>}
        {<Id.Lit_VarLike 'bs='> <12>}
        {<Id.Lit_VarLike 'count='> <1>}
      ]
      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
    )
    (command.Simple
      words: [
        {<dd>}
        {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName '$f')}
        {<Id.Lit_VarLike 'of='> <y>}
        {<Id.Lit_VarLike 'bs='> <6>}
        {<Id.Lit_VarLike 'count='> <4>}
        {<Id.Lit_VarLike 'skip='> <2>}
      ]
      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
    )
    (command.Simple
      words: [{<cat>} {<x>} {<y>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<z>})]
    )
    (command.Simple
      words: [
        {<dd>}
        {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName '$f')}
        {<Id.Lit_VarLike 'of='> <answer>}
        {<Id.Lit_VarLike 'bs='> <9>}
        {<Id.Lit_VarLike 'count='> <4>}
      ]
      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<z>} {<answer>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [532 543]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<dd>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<Id.Lit_QMark '?'>})
    (command.Simple
      words: [{<df>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-r>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [579 588]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<df>} {<Test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<Id.Lit_QMark '?'>})
    (command.Simple
      words: [{<du>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-r>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [624 633]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<du>} {<Test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<head>} {<-1>} {($ Id.VSub_DollarName '$f')})
        (command.Simple
          words: [{<od>}]
          redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$ARCH')} {<Id.Lit_Equals '='>} {<i86>} 
              {<-o>} {($ Id.VSub_DollarName '$ARCH')} {<Id.Lit_Equals '='>} {<i386>} {<Id.Lit_RBracket ']'>}
            )
          ]
          action: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
                (redir.HereDoc
                  op: <Id.Redir_DLess '<<'>
                  fd: -1
                  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'>
                  ]
                )
              ]
            )
          ]
          spids: [675 695]
        )
      ]
      else_action: [
        (command.Simple
          words: [{<cat>}]
          redirects: [
            (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
            (redir.HereDoc
              op: <Id.Redir_DLess '<<'>
              fd: -1
              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: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [732 743]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<od>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<head>} {<-1>} {($ Id.VSub_DollarName '$f')})
        (command.Simple
          words: [{<od>} {<-d>}]
          redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$ARCH')} {<Id.Lit_Equals '='>} {<i86>} 
              {<-o>} {($ Id.VSub_DollarName '$ARCH')} {<Id.Lit_Equals '='>} {<i386>} {<Id.Lit_RBracket ']'>}
            )
          ]
          action: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
                (redir.HereDoc
                  op: <Id.Redir_DLess '<<'>
                  fd: -1
                  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'>
                  ]
                )
              ]
            )
          ]
          spids: [784 804]
        )
      ]
      else_action: [
        (command.Simple
          words: [{<cat>}]
          redirects: [
            (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
            (redir.HereDoc
              op: <Id.Redir_DLess '<<'>
              fd: -1
              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: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [841 852]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<od>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 891
          stdin_parts: [<'red\n'> <'green\n'> <'blue\n'>]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<y>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 905
          stdin_parts: [<'rood\n'> <'groen\n'> <'blauw\n'>]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 918
          stdin_parts: [<'red\trood\n'> <'green\tgroen\n'> <'blue\tblauw\n'>]
        )
      ]
    )
    (command.Simple
      words: [{<paste>} {<x>} {<y>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<z>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<z>} {<answer>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [929 940]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<paste>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<echo>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 984
          stdin_parts: [
            <Id.Right_DoubleQuote '"'>
            <'Hi,'>
            <Id.Right_DoubleQuote '"'>
            <' said Carol, laughing, '>
            <Id.Right_DoubleQuote '"'>
            <"How's life?">
            <Id.Right_DoubleQuote '"'>
            <'\n'>
          ]
        )
      ]
    )
    (command.Simple
      words: [{<echo>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1003 1014]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<prep>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<printenv>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<grep>} {<HOME>} {<x>}]
                  redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1046 1058]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<printenv>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<grep>} {<PATH>} {<x>}]
                  redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1081 1093]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<printenv>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<grep>} {<SHELL>} {<x>}]
                  redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1116 1128]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<printenv>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<grep>} {<USER>} {<x>}]
                  redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1151 1163]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<printenv>} {<test>} {<4>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<pwd>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<Pwd_file>})]
    )
    (C {<cd>} 
      {
        (command_sub
          left_token: <Id.Left_Backtick '`'>
          command_list: (command.CommandList children:[(C {<pwd>})])
        )
      }
    )
    (command.Simple
      words: [{<pwd>}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-s>} {<Pwd_file>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1208 1217]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<pwd>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<Pwd_file>} {<x>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1240 1251]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<pwd>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<strings>} {<a.out>})
        (command.Simple
          words: [{<grep>} {(DQ <MS-DOS>)}]
          redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1305 1316]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<strings>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<sum>} {($ Id.VSub_DollarName '$f')}]
      redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1362 1373]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<sum>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<cat>} {($ Id.VSub_DollarName '$f')})
        (command.Simple
          words: [{<tee>} {<x>}]
          redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})]
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<x>} {($ Id.VSub_DollarName '$f')})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1413 1424]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<tee>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1451 1457]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<true>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 1497
          stdin_parts: [<'100\n'> <'200\n'> <'200\n'> <'300\n'>]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<END>}
          here_end_span_id: 1511
          stdin_parts: [<'100\n'> <'200\n'> <'300\n'>]
        )
      ]
    )
    (command.Simple
      words: [{<uniq>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<x>})
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<y>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<y>} {<answer>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1521 1532]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<uniq>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<answer>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          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.Simple
          words: [{<uniq>} {<-c>}]
          redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<y1>})]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{<sort>} {<Id.Lit_Other '+'> <1>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<y1>})
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<y>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<y>} {<answer>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1621 1632]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<pipeline>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<cat>} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$f')} 
          {($ Id.VSub_DollarName '$f')}
        )
        (C {<sort>})
        (command.Simple
          words: [{<uniq>}]
          redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<x>})]
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{<sort>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{($ Id.VSub_DollarName '$f')})
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<y>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x>} {<y>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Other ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1683 1694]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<pipeline>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<cd>} {<..>})
    (C {<rm>} {<-rf>} {<DIR_SH2>})
    (C {<echo>} {<ok>})
  ]
)