codes for Language Implementation Patterns written by Terence Parr