grammar is placed in pcfg.py