It worked for most interactively typed commands, but for the more complex commands a user might write in a script, it could easily fail, producing only a cryptic error message or an unwelcome result. For example, the C shell could not support piping between control structures. Attempting to pipe the output of a codice_77 command into codice_78 simply didn't work. (The work-around, which works for many of the complaints related to the parser, is to break the code up into separate scripts. If the codice_77 is moved to a separate script, piping works because scripts are run by forking a new copy of csh that does inherit the correct stdio handles.)