front-end rule parser