PEG compiler