Automatic question generation and the assessment of procedural knowledge is still a challenging research topic. This article focuses on case of it, the techniques of parsing grammars for compiler construction. There are two well-known techniques for parsing: top-down parsing with LL(1) and bottomup with LR(1). Learning these techniques and learning to design grammars that can be parsed with these techniques requires practice. This article describes an application that covers all the tasks needed to automatise the learning and assessment process:(1) automatically generate context-free languages and grammars of different complexity; (2) pose different types of questions to the student with an appropriate response interface; (3) automatically correct the student answer, including grammar design for a given language; (4) provide feedback on errors. The application has been implemented as a plug-in of the SIETTE assessment system that in addition, can provide adaptive behaviour for question selection. It has been successfully used by more than a thousand students for formative and summative assessment.