perhaps but it's not clear cut. the bourne shell was quite tidy, but as with many hand-written recursive descent implementations, it did cheat a few times. i did do a yacc grammar for its language for a clone, based originally on the BSTJ paper without sight of the code, but that grammar had to be weakened in several places, with help from the scanner as i recall, in order to handle `real' bourne shell scripts when i finally had access to the bourne implementation and enough real shell scripts. i'd be more precise but it must be a good 25 years or so later, and i can't remember the details; not least because i've moved on and i've got plenty of non-70's things to remember. (that isn't to suggest that earlier things weren't much better than some current `inventions', but that's perhaps not so much a commendation of the old as a condemnation of the self-styled `new'.