parser semi complete