compiler construction implemented in java