work on PEG grammar