full functioning version with all of our grammar included

includes up to if then support, which is the most abstract statement
our grammar has