peg grammar works