makings of a syntax checker