Java classes useful for implementing programming languages