A compiler compiler starting from scratch (regular expression)