(command.Pipeline
  children: [
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>} {($ Id.VSub_Number 1)}]
      redirects: []
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <read>
              more_env: []
              words: [{<read>} {<line>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.AndOr
              children: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {($ Id.VSub_DollarName line)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <awk>
                      more_env: []
                      words: [
                        {<awk>}
                        {
                          (SQ 
                            <
'NF==4 { print "mkdir -p "$4" || exit 1; chmod "$1" "$4" || exit 1; chown "$2" "$4" || exit 1; chgrp "$3" "$4" || exit 1" } NF==3 { print "rm "$1" ; ln -s "$3" "$1" || exit 1" } '
                            >
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sh>
                      more_env: []
                      words: [{<sh>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
  ]
  ops: [<Id.Op_Pipe _>]
)