ALeRT is a website which displays the properties of a grammar graphically. The idea came from wanting to show how left-recursion can be viewed as a cycle in a graph of dependencies of first sets, hence the name Automatic Left Recursion Tester.

Access it here: https://alert.prout.tech

Source code available here: https://github.com/eugene-prout/alert

Background

It started life one year ago as a Python script written in one evening whilst I was studying compiler design at Warwick. The first version of the script worked pretty well, left-recursion could be easily seen as a cycle so I was happy with it.

Some of my classmates wanted to see it so evolved into a Flask website. This website was super simple, it called the script as a library function and returned the result. This also worked pretty well and some JavaScript made it feel responsive.

About 6 months ago a friend and I started to refactor the website. We wanted to allow the user more flexibility as the script only worked in the format of our compiler class’ grammar. I hope that giving the user more choices on the output will let them discover more features of their grammar.

Click here to see my blog posts about the refactoring.